Checking regex pattern validity

Started by David Garamondover 21 years ago3 messagesgeneral
Jump to latest
#1David Garamond
lists@zara.6.isreserved.com

Is there a function like IS_VALID_REGEX() to check whether a pattern is
valid (i.e. it compiles)? I'm storing a list of regex patterns in a
table. It would be nice to be able to add a CHECK constraint to ensure
that all the regexes are valid.

If there isn't any, can I suggest Postgres add one? Although I know this
can probably be done in plpgsql using exception handling, or done in
plperl or plruby.

--
dave

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: David Garamond (#1)
Re: Checking regex pattern validity

David Garamond <lists@zara.6.isreserved.com> writes:

Is there a function like IS_VALID_REGEX() to check whether a pattern is
valid (i.e. it compiles)? I'm storing a list of regex patterns in a
table. It would be nice to be able to add a CHECK constraint to ensure
that all the regexes are valid.

... CHECK (('' ~ pattern) IS NOT NULL) ...

regards, tom lane

#3David Garamond
lists@zara.6.isreserved.com
In reply to: Tom Lane (#2)
Re: Checking regex pattern validity

Tom Lane wrote:

David Garamond <lists@zara.6.isreserved.com> writes:

Is there a function like IS_VALID_REGEX() to check whether a pattern is
valid (i.e. it compiles)? I'm storing a list of regex patterns in a
table. It would be nice to be able to add a CHECK constraint to ensure
that all the regexes are valid.

... CHECK (('' ~ pattern) IS NOT NULL) ...

Not exactly what I wanted, but close enough. Thanks!

However, what if only want to accept invalid regex patterns? Or what if
invalid pattern should be converted to NULL automatically? I'd still
vote for a function...

--
dave