Subject: [boost] boost::regex problem with escaped parenthesis
From: Kumar, Anurag (Anurag.Kumar_at_[hidden])
Date: 2008-12-01 08:39:46


Hello,

 

While trying to match the escaped "(" I am facing problem. Following is
the code snippet :

      

      std::string stdString = "abc(def)ghi";

      std::string bExpression = "c\\(def\\)g";

 

      // Creating the expression

      boost::regex boostRegEx ( bExpression, boost::regex::extended );

      

      // my match function

      boost::smatch boostMatch;

 

      std::string::const_iterator itr_begin ( stdString.std().begin());

      std::string::const_iterator itr_end ( stdString.std().end() );

 

      bool b_match = false;

      // Match flags used

      boost::match_flag_type matchFlags =
boost::regex_constants::match_default |

 
boost::regex_constants::match_not_dot_newline |

 
boost::regex_constants::match_single_line;

 

      // Trying to match

      b_match = boost::regex_search( itr_begin, itr_end, boostMatch,
boostRegEx, matchFlags );

 

My expected result is:

b_match should be "true"

boostMatch should contain "c(def)g"

 

Please help me to fix this problem.

 

Regards,

Anurag