Boost logo

Boost Users :

Subject: Re: [Boost-users] [regex] validating expressions
From: John Dlugosz (JDlugosz_at_[hidden])
Date: 2010-05-20 11:51:23


>
> "[[[A-Z]]"
> "[A-Z]??"
>
> Both Qt's QRegExp and http://www.regexplanet.com/simple/index.html
> report the first is invalid. Qt's QRegExp reports the second as
> invalid,
> while http://www.regexplanet.com/simple/index.html report it as valid.

The second one is using a feature that changes the greediness of the quantifiers. You might look at the "perlre" man page for Perl 5.10 to get more complete documentation.

=== quote ===
By default, a quantified subpattern is "greedy", that is, it will match as many times as possible (given a particular starting location) while still allowing the rest of the pattern to match. If you want it to match the minimum number of times possible, follow the quantifier with a "?". Note that the meanings don't change, just the "greediness":

    *? Match 0 or more times, not greedily
    +? Match 1 or more times, not greedily
    ?? Match 0 or 1 time, not greedily
    {n}? Match exactly n times, not greedily
    {n,}? Match at least n times, not greedily
    {n,m}? Match at least n but not more than m times, not greedily
=== end quote ===

The first one is not an error because a ']' by itself is just a literal character, and '[' is fine inside the range. [[[A-Z] is a range, just like [xxA-Z] is.

--John

TradeStation Group, Inc. is a publicly-traded holding company (NASDAQ GS: TRAD) of three operating subsidiaries, TradeStation Securities, Inc. (Member NYSE, FINRA, SIPC and NFA), TradeStation Technologies, Inc., a trading software and subscription company, and TradeStation Europe Limited, a United Kingdom, FSA-authorized introducing brokerage firm. None of these companies provides trading or investment advice, recommendations or endorsements of any kind. The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net