1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #include <iostream>
#include <string>
#include <stdexcept>
#include <boost/regex.hpp>
#include <boost/lexical_cast.hpp>
main()
{
.....
try
{
boost::regex reg("(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3}).(\\d{1,3})");
boost::smatch m;
string chaine;
if (boost::regex_match(chaine, m,reg))
{
cout << "Nb éléments : " << m.size() << endl;
for (int i=1; i < 5; i++)
{
int valeur = boost::lexical_cast<int>(m[i]);
cout << "m[" << i << "]" << m[i] << " = " << valeur << endl;
}
}
}
catch (const boost::bad_expression& e)
{
std::cout << "Ce n'est pas une expression régulière valide : "
<< e.what()
<< endl;
}
catch (...)
{
std::cout << "Etrange une exception inattendue" << endl;
}
..
} |
Partager