Re: [GENERAL] Regex "embedded options" does only work on the whole pattern?
Makes sense. Thank you both for clarifications! Was only wondering if this feature is there so I could elegantly do equivalent of perl's (small 'a', anycase 'sd', small 'f'): $,="\n"; my $testr='1asdf 2AsdF 3AsDF 4asDf 5aSDf 6aSdf 7ASdf 8Asdf'; my @res = $testr =~ /a(?i:sd)f/g; print @res; - asdf asDf aSDf aSdf Thank you, Kind Regards ~Maciek On 4 January 2016 at 03:58, Tom Lane wrote: > matshyeq writes: > > I can see postgresql claims to supports regular expression flags: > > Yup. > > > What I find don't makes sense to me is that those flags could be used to > > switch on/off match feature locally as opposed to the whole regex (same > as > > though flags parameters of regex functions). > > Not all of them would make sense locally; in fact I'd venture that > case-sensitivity is the *only* flag that anyone would consider using > that way. > > > Perl supports that locality while postgres documentation says: > > "*An ARE can begin with embedded options: a sequence (?xyz) (where xyz is > > one or more alphabetic characters) specifies options affecting the rest > of > > the RE. > > Right. It says "begin with" and it means "begin with". > > We are not Perl and are not attempting to be bug-compatible with its regex > engine. If you want bug-compatibility, see PL/Perl. > > regards, tom lane >
Re: [GENERAL] Regex "embedded options" does only work on the whole pattern?
matshyeq writes: > I can see postgresql claims to supports regular expression flags: Yup. > What I find don't makes sense to me is that those flags could be used to > switch on/off match feature locally as opposed to the whole regex (same as > though flags parameters of regex functions). Not all of them would make sense locally; in fact I'd venture that case-sensitivity is the *only* flag that anyone would consider using that way. > Perl supports that locality while postgres documentation says: > "*An ARE can begin with embedded options: a sequence (?xyz) (where xyz is > one or more alphabetic characters) specifies options affecting the rest of > the RE. Right. It says "begin with" and it means "begin with". We are not Perl and are not attempting to be bug-compatible with its regex engine. If you want bug-compatibility, see PL/Perl. regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Re: [GENERAL] Regex "embedded options" does only work on the whole pattern?
On Sun, Jan 3, 2016 at 8:49 AM, matshyeq wrote: > Does that mean these "EMBEDDED OPTIONS" can be only defined at the > beginning of the pattern and therefore don't offer anything extra over *flags > *option? > Yes, this is how they behave. The most important difference is that: column ~ 'regex' (i.e., the operator) can only accept embedded switches since there is no place to write a formal flag like you can with the functions. Though there is a case-insensitive operator as a usability feature the other modes lack any external operator support. David J.