Boost logo

Boost Users :

From: John Maddock (john_at_[hidden])
Date: 2004-05-05 15:28:27


> What am I doing wrong?
>
> Here's my short matching function:
>
> bool MatchRegExp(const std::string& matchThis, const std::string&
> againstThis)
> {
> try
> {
> const boost::regex e(againstThis);//,
> boost::regex_constants::icase);
> return boost::regex_match(matchThis, e,
> boost::regex_constants::extended);
> }
> catch(boost::bad_expression be)
> {
> return false;
> }
>
> }

You're passing the wrong constants in all the wrong places, it should have
been:

  const boost::regex e(againstThis, boost::regex::extended);
  return boost::regex_match(matchThis, e, boost::match_default);

You can omit the match_default flag (since it's the default anyway), and if
you wanted case insensitive matching it would have been:

  const boost::regex e(againstThis, boost::regex::extended |
boost::regex::icase);

Oh, and don't forget to check the difference between regex_match and
regex_search (the match version requires all of the text to match).

John.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net