Extrahieren von submatches mit boost regex in c++

Ich versuche zu extrahieren submatches aus einer text-Datei mit boost regex. Derzeit bin ich nur zurückgeben die erste gültige Zeile und die volle Linie anstelle des gültigen E-Mail-Adresse. Ich habe versucht, mit Hilfe der iterator und Verwendung von submatches, aber ich war nicht mit Erfolg mit. Hier ist der aktuelle code:

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(); 
}

InformationsquelleAutor John | 2011-09-05

Schreibe einen Kommentar