estoy tratando de extraer subcoincidencias desde un archivo de texto usando expresiones regulares impulso. Actualmente, solo estoy devolviendo la primera línea válida y la línea completa en lugar de la dirección de correo electrónico válida. Intenté usar el iterador y usar subcompeticiones, pero no estaba teniendo éxito. Aquí está el código actual:Extracción subcoincidencias utilizando impulso de expresiones regulares en C++
if(Myfile.is_open()) {
boost::regex pattern("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$");
while(getline(Myfile, line)) {
string::const_iterator start = line.begin();
string::const_iterator end = line.end();
boost::sregex_token_iterator i(start, end, pattern);
boost::sregex_token_iterator j;
while (i != j) {
cout << *i++ << endl;
}
Myfile.close();
}
Tal vez mi expresión regular está mal pero eso no dando resultados adecuados para mí. – John
Fue la expresión regular, gracias. – John