From: | Bob Gailer <bgailer(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
Subject: | Re: BUG #15046: non-greedy ignored |
Date: | 2018-02-03 19:08:46 |
Message-ID: | CAP1rxO5Ljq6JOD_zgsrc0At_3qZU343hr8qtk-WWCzuBLyEirQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Thanks! Rtfp, eh?
On Feb 2, 2018 8:48 PM, "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> "David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> writes:
> > On Friday, February 2, 2018, PG Bug reporting form <
> noreply(at)postgresql(dot)org>
> > wrote:
> >> Works as expected. Then I add |q to the pattern, and the .*? becomes
> >> greedy!
>
> > This seems to be explained by the final greediness rule:
> > https://www.postgresql.org/docs/10/static/functions-
> matching.html#POSIX-MATCHING-RULES
> > An RE consisting of two or more branches connected by the | operator
> is
> > always greedy.
>
> Yeah. That subsection also contains some useful advice about how to
> control greediness decisions --- in this case, wrapping the whole
> thing with (...){1,1}? might do what you want.
>
> The short answer, perhaps, is that non-greedy patterns are not
> standardized by POSIX and you shouldn't expect that all regex
> engines do them the same way. Ours is definitely different
> from Perl's, for example.
>
> regards, tom lane
>
From | Date | Subject | |
---|---|---|---|
Next Message | PG Bug reporting form | 2018-02-03 19:24:24 | BUG #15047: shell.dll missing |
Previous Message | Peter Eisentraut | 2018-02-03 16:05:41 | Re: BUG #14912: Undocumented: 'psql -l' assumes database 'postgresql' not $USER |