Search Postgresql Archives

Re: regex help wanted

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2013-04-25, Karsten Hilbert <Karsten.Hilbert@xxxxxxx> wrote:
> On Thu, Apr 25, 2013 at 10:32:26AM -0400, Tom Lane wrote:
>
>> Karsten Hilbert <Karsten.Hilbert@xxxxxxx> writes:
>> > What I don't understand is: Why does the following return a
>> > substring ?
>> 
>> > 	select substring ('junk $<allergy::test::99>$ junk' from '\$<[^<]+?::[^:]+?>\$');
>> 
>> There's a perfectly valid match in which [^<]+? matches allergy::test
>> and [^:]+? matches 99.
>
> Tom, thanks for helping !
>
> I would have thought "<[^<]+?:" should mean:
>
> 	match a "<"
> 	followed by 1-n characters as long as they are not "<"
> 	until the VERY NEXT ":"


if you want that say:  "<[^<:]+:"

> The "?" should make the "+" after "[^<]" non-greedy and thus
> stop at the first occurrence of ":", right ?  Or am I
> misunderstanding that part ?

>From "the fine manual"

 Non-greedy quantifiers (available in AREs only) match the same
 possibilities as their corresponding normal (greedy) counterparts, but
 prefer the smallest number rather than the largest number of matches.
 See Section 9.7.3.5 for more detail.



-- 
⚂⚃ 100% natural



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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux