$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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