Boost logo

Boost :

Subject: Re: [boost] Why my subexpression doesn't work in Regex
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2009-03-17 22:43:21


AMDG

Qihong Wang wrote:
> I'm a new boost and regex user. I tried a c++ regex sample as follows
>
> regex pattern("banan\\(an\\)*a");
> string str = "bananana";
>
> if(regex_match(str, pattern))
> cout<<"---- pattern matched ----"<<endl;
> else
> cout<<"---- pattern unmatched ----"<<endl;
>
> To my surprise, the it printed out pattern unmatched. If I change str to
> "banan(an)a",
> the result is pattern matched. Feels like boost.Regex doesn't treat ( ) as
> subexpression.
> Any idea?
>

You're escaping the parentheses, so Boost.Regex, treats
them as literal "(" and ")" instead of special characters.
The regex will match strings like
"banan(an)))))a"

In Christ,
Steven Watanabe


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