Force ARE in regexp string

Started by Johannes Öbergover 15 years ago3 messagesgeneral
Jump to latest
#1Johannes Öberg
johannes.oberg@proactivegaming.com

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Johannes Öberg (#1)
Re: Force ARE in regexp string

=?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

#3Johannes Öberg
johannes.oberg@proactivegaming.com
In reply to: Tom Lane (#2)
Re: Force ARE in regexp string

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.