$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