Обсуждение: 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