Re: problem with non-greedy regex match

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: problem with non-greedy regex match
Дата
Msg-id 1039.1231879777@sss.pgh.pa.us
обсуждение исходный текст
Ответ на problem with non-greedy regex match  ("Merlin Moncure" <mmoncure@gmail.com>)
Список pgsql-bugs
"Merlin Moncure" <mmoncure@gmail.com> writes:
> I _may_ have found a problem that is affecting non-greedy regex matches.

No, you didn't read the fine print in section 9.7.3.5; particularly

    A branch -- that is, an RE that has no top-level | operator -- has the
    same greediness as the first quantified atom in it that has a greediness
    attribute.

    ...

    The above rules associate greediness attributes not only with individual
    quantified atoms, but with branches and entire REs that contain
    quantified atoms. What that means is that the matching is done in such a
    way that the branch, or whole RE, matches the longest or shortest
    possible substring as a whole. Once the length of the entire match is
    determined, the part of it that matches any particular subexpression is
    determined on the basis of the greediness attribute of that
    subexpression, with subexpressions starting earlier in the RE taking
    priority over ones starting later.

In short, the \s+ causes the whole thing to become greedy.  Maybe \s+?
will do what you want.

            regards, tom lane

В списке pgsql-bugs по дате отправления:

Предыдущее
От: "Merlin Moncure"
Дата:
Сообщение: problem with non-greedy regex match
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: BUG #4612: lc_numeric setting ignored