Re: problem with non-greedy regex match - Mailing list pgsql-bugs

From Tom Lane
Subject Re: problem with non-greedy regex match
Date
Msg-id 1039.1231879777@sss.pgh.pa.us
Whole thread Raw
In response to problem with non-greedy regex match  ("Merlin Moncure" <mmoncure@gmail.com>)
List 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 by date:

Previous
From: "Merlin Moncure"
Date:
Subject: problem with non-greedy regex match
Next
From: Bruce Momjian
Date:
Subject: Re: BUG #4612: lc_numeric setting ignored