| From: | Thomas Pundt <mlists(at)rp-online(dot)de> |
|---|---|
| To: | Henry <henry(at)zen(dot)co(dot)za> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Regex Character-Class |
| Date: | 2009-06-30 07:27:29 |
| Message-ID: | 4A49BE61.3060506@rp-online.de |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Henry schrieb:
> I must be missing something here:
>
> SELECT '1.1.1.1' ~ E'^\d+';
>
> returns FALSE, when I would expect TRUE, as for:
>
> SELECT '1.1.1.1' ~ E'^[[:digit:]]+';
>
> ie, '[[:digit:]]' != '\d'
>
> In config, "regex_flavor = advanced".
>
> Any ideas?
Yes; you have to escape the backslash character:
=> SELECT '1.1.1.1' ~ E'^\\d+';
?column?
----------
t
(1 row)
See the documentation for this
(http://www.postgresql.org/docs/8.3/interactive/functions-matching.html)
Note: Remember that the backslash (\) already has a special meaning
in PostgreSQL string literals. To write a pattern constant that
contains a backslash, you must write two backslashes in the statement,
assuming escape string syntax is used (see Section 4.1.2.1).
Ciao,
Thomas
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dave Page | 2009-06-30 07:35:09 | Re: masking the code |
| Previous Message | A. Kretschmer | 2009-06-30 07:23:26 | Re: Regex Character-Class |