BUG #16133: Regexp quantifier issues
От | PG Bug reporting form |
---|---|
Тема | BUG #16133: Regexp quantifier issues |
Дата | |
Msg-id | 16133-a8934caee4e53035@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #16133: Regexp quantifier issues
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 16133 Logged by: Andrew Gierth Email address: andrew@tao11.riddles.org.uk PostgreSQL version: 12.1 Operating system: any Description: (This started out as an irc discussion on #tcl that spilled over to #postgresql:) SELECT regexp_match('aaa', '(a*)*'); regexp_match -------------- {aaa} (1 row) SELECT regexp_match('aaa', '(a*)+'); regexp_match -------------- {""} (1 row) What seems to be happening here is that in the + case, the engine is doing one more match, matching (a*) against an empty string at the end of the input, unlike the * case where the last match of (a*) is against the whole string. This seems to violate the rules for determining where subexpression captures line up. (And certainly there is no justification for the + vs. * quantifier to make any difference here.) There are a large number of similar cases, but this seems to be the common factor to all of them so far.
В списке pgsql-bugs по дате отправления: