#include #include #include // Boost.Regex lib using namespace std; int main( ) { std::string s,sre; //regular expression with [:xdigit:] sre="[:xdigit:]*page[:xdigit:]*error[:xdigit:]";//why :xdigit: doesnot match ?? //regular expression with \w //sre="\\w*page\\w*error\\w"; //generates match OK //Matching string s="###############################1PAGE1ERROR1########################"; boost::regex re; re.assign(sre, boost::regex_constants::icase); std::string::const_iterator start, end; start = s.begin(); end = s.end(); boost::sregex_iterator it(start, end, re); boost::sregex_iterator it_end; for( ; it != it_end; it++) { cout << "Found Pattern:start:" << std::string((*it)[0].first, (*it)[0].second) << ":end:\n" << "Pattern starts at :" << (*it)[0].first - s.begin() << "\nPattern ends at: " << ((*it)[0].second - 1) - s.begin() << "\nPattern length:" << (*it)[0].length() << endl; } }