Re: BUG #15046: non-greedy ignored
От | Tom Lane |
---|---|
Тема | Re: BUG #15046: non-greedy ignored |
Дата | |
Msg-id | 8100.1517622536@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: BUG #15046: non-greedy ignored ("David G. Johnston" <david.g.johnston@gmail.com>) |
Ответы |
Re: BUG #15046: non-greedy ignored
|
Список | pgsql-bugs |
"David G. Johnston" <david.g.johnston@gmail.com> writes: > On Friday, February 2, 2018, PG Bug reporting form <noreply@postgresql.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
В списке pgsql-bugs по дате отправления: