Boost logo

Boost Users :

Subject: [Boost-users] How to compile boost regex
From: manish4gupta (manish_at_[hidden])
Date: 2009-09-14 23:20:50


I am compiling the program using the following option g++ -ggdb -lboost_regex
-o regex regex.cpp but it is giving error.

#include <boost/regex.hpp>
#include <iostream>

void print_captures(const std::string& regx, const std::string& text)
{
   boost::regex e(regx);
   boost::smatch what;
   std::cout << "Expression: \"" << regx << "\"\n";
   std::cout << "Text: \"" << text << "\"\n";
   if(boost::regex_match(text, what, e, boost::match_extra))
   {
      unsigned i, j;
      std::cout << "** Match found **\n Sub-Expressions:\n";
      for(i = 0; i < what.size(); ++i)
         std::cout << " $" << i << " = \"" << what[i] << "\"\n";
      std::cout << " Captures:\n";
      for(i = 0; i < what.size(); ++i)
      {
         std::cout << " $" << i << " = {";
         for(j = 0; j < what.captures(i).size(); ++j)
         {
            if(j)
               std::cout << ", ";
            else
               std::cout << " ";
            std::cout << "\"" << what.captures(i)[j] << "\"";
         }
         std::cout << " }\n";
      }
   }
   else
   {
      std::cout << "** No Match found **\n";
   }
}

int main(int , char* [])
{
   print_captures("(([[:lower:]]+)|([[:upper:]]+))+",
"aBBcccDDDDDeeeeeeee");
   print_captures("(.*)bar|(.*)bah", "abcbar");
   print_captures("(.*)bar|(.*)bah", "abcbah");
   print_captures("^(?:(\\w+)|(?>\\W+))*$",
      "now is the time for all good men to come to the aid of the party");
   return 0;
}

Error message:
regex.cpp: In function ‘void print_captures(const std::string&, const
std::string&)’:
regex.cpp:20: error: ‘class boost::smatch’ has no member named ‘captures’
regex.cpp:26: error: ‘class boost::smatch’ has no member named ‘captures’

How can i avoid that. Please help me.

-- 
View this message in context: http://www.nabble.com/How-to-compile-boost-regex-tp25447212p25447212.html
Sent from the Boost - Users mailing list archive at Nabble.com.

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