
18 Mar
2009
18 Mar
'09
2:43 a.m.
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