Re: order of (escaped) characters in regex range

From: "David Johnston" <polobo(at)yahoo(dot)com>
To: "'Merlin Moncure'" <mmoncure(at)gmail(dot)com>, <rob(at)marjot-multisoft(dot)com>
Cc: "'Szymon Guz'" <mabewlun(at)gmail(dot)com>, "'pgsql-general'" <pgsql-general(at)postgresql(dot)org>
Subject: Re: order of (escaped) characters in regex range
Date: 2011-12-13 16:53:06
Message-ID: 032001ccb9b7$b089b3f0$119d1bd0$@yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

-----Original Message-----
From: pgsql-general-owner(at)postgresql(dot)org
[mailto:pgsql-general-owner(at)postgresql(dot)org] On Behalf Of Merlin Moncure
Sent: Tuesday, December 13, 2011 11:39 AM
To: rob(at)marjot-multisoft(dot)com
Cc: David Johnston; Szymon Guz; pgsql-general
Subject: Re: [GENERAL] order of (escaped) characters in regex range

On Tue, Dec 13, 2011 at 7:51 AM, InterRob <rob(dot)marjot(at)gmail(dot)com> wrote:
> Thanks guys, i see what you mean.
>
> I do intend to use the PG escaping, in order to avoid that annoying
> warning... Hence, my expression should indeed be:
> SELECT regexp_matches('123-A' , E'(3[A-Z\\-\\(\\) ])');
>
> In the above expression i added the parentheses as I whish to match
> these as well :))

I advise dollar quoting when writing complicated regular expressions:

E'(3[A-Z\\-\\(\\) ])'
becomes
$$(3[A-Z\-\(\) ])$$

merlin

--
Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org) To make
changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

---------------------------------------------------------------

Aside from backward compatibility, and the various warnings, is there any
reason to prefer dollar-quoting over a non-SQL-escaped string literal (i.e.,
'3[A-Z\-\(\) ]' ) ?

David J.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Scot Kreienkamp 2011-12-13 16:58:00 Re: initdb with lc-collate=C
Previous Message Merlin Moncure 2011-12-13 16:38:57 Re: order of (escaped) characters in regex range