Hello everyone,
When I use boost_1_41_0 of regx in vs2005, I met this runtime error:
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::regex_error> >
I search a lot, but there is not valid method to solve it. Can you do me a favor to give me the way to solve it.
Thanks a lot
my code is
#include <boost/regex.hpp>
#include <iostream>
boost::regex e("(
\\d{3, 4})[- ]?(
\\d{4)})[- ]?(
\\d{4})[- ]?(
\\d{4})");
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:]]+))+", "aBBcccDDDDeeeeeee");
return 0;
}