Thread: Regular expression validation

Regular expression validation

From
Jakub Ouhrabka
Date:
Hi,

is there any function in postgresql saying me if the given regular
expression is valid? I store regular expressions in a table and then
perform some searches using ~* operator. But when the stored regular
expression is invalid (eg '+') then the query with ~* fails (ERROR:
Invalid regular expression: ?, *, or + operand invalid.)  I'd like to have
a check constraint on that column storing regular expressions, so that no
one can insert invalid data and cause failing of other queries... Is there
any simple way?

thanks,                  kuba


Re: Regular expression validation

From
Stephan Szabo
Date:
On Fri, 19 Jul 2002, Jakub Ouhrabka wrote:

> is there any function in postgresql saying me if the given regular
> expression is valid? I store regular expressions in a table and then
> perform some searches using ~* operator. But when the stored regular
> expression is invalid (eg '+') then the query with ~* fails (ERROR:
> Invalid regular expression: ?, *, or + operand invalid.)  I'd like to have
> a check constraint on that column storing regular expressions, so that no
> one can insert invalid data and cause failing of other queries... Is there
> any simple way?

Hmm, maybe something like

CHECK (('' ~* col) or (not ('' ~* col)) or (col is null))
(remove the last part if you don't want nulls)