Boost logo

Boost :

From: John Maddock (john_at_[hidden])
Date: 2005-12-06 05:27:41


> The original expression is "(\.(idl|cidl|cdl))?$". Doesn't '$' at the
> end means that this expression by definition cannot match two things
> in a single string (since a string has only one end)?

Good point, it's not that smart though...

>> I'm afraid this dark corner was/is under-documented in the docs, but
>> the TR1 text (with which this version is intended to conform) is
>> quite clear that this is the required behaviour.
>
> For what it's worth, perl on my box (5.8.7) also think there is only
> one match. But I guess C++ TR1 is more authoritative when it comes to
> regular expressions (sorry, couldn't resist sarcasm when it comes to
> Std C++).

OK, we messed up the text then (well I did actually).

>> As a workaround, you could specify format_first_only in the format
>> flags (assuming you're replacing the suffix on a single filename),
>> or you could use an expression like:
>>
>> (.)(\\.(idl|cidl|cdl))?$
>
> Following the logic above it will match all single letters in the
> string,
> no?

No, because of the trailing $.

> The following seems to work thought: "^(.+?)(\.(idl|cidl|cdl))?$"
>
>
> Thanks for your help,
> -boris
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk