Обсуждение: Force ARE in regexp string

Поиск
Список
Период
Сортировка

Force ARE in regexp string

От
Johannes Öberg
Дата:
  Hi! I'm trying to do an advanced regexp match but postgres doesn't
seem to let me.

I've set regex_flavor to ARE, and I've tried prefixing my strings, i.e.
~* E'***:abc' but for some reason postgres treats all my regexps as BRE's.

Common newbie gotchas? I'm trying it directly from psql.exe btw, running
postgres 8.4 on a professionally set up Linux machine, and I've also
tried it locally on a Windows Bitnami machine with the same results.

Thank
/J

Re: Force ARE in regexp string

От
Tom Lane
Дата:
=?ISO-8859-1?Q?Johannes_=D6berg?= <johannes.oberg@proactivegaming.com> writes:
>   Hi! I'm trying to do an advanced regexp match but postgres doesn't
> seem to let me.

> I've set regex_flavor to ARE, and I've tried prefixing my strings, i.e.
> ~* E'***:abc' but for some reason postgres treats all my regexps as BRE's.

> Common newbie gotchas?

Well, the symptom as described seems pretty improbable.  You didn't show
an exact example, but I'm suspecting the real problem is that you're not
allowing for backslashes in a string literal getting eaten by string
parsing.  Do the cases that don't work for you involve backslashes in
the regex?

            regards, tom lane

Re: Force ARE in regexp string

От
Johannes Öberg
Дата:
  On 2010-09-15 15:33, Tom Lane wrote:
> =?ISO-8859-1?Q?Johannes_=D6berg?=<johannes.oberg@proactivegaming.com>  writes:
>> I've set regex_flavor to ARE, and I've tried prefixing my strings, i.e.
>> ~* E'***:abc' but for some reason postgres treats all my regexps as BRE's.
> Well, the symptom as described seems pretty improbable. You didn't show
> an exact example, but I'm suspecting the real problem is that you're not
> allowing for backslashes in a string literal getting eaten by string
> parsing.  Do the cases that don't work for you involve backslashes in
> the regex?
>
>             regards, tom lane
>
This was indeed what was happening, problem solved, thanks alot! Now,
I'm having new problems with Postgres seemingly thinking I'm regexping
too much for a single query, but that's will be another thread.