Checking regex pattern validity
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
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
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