私はboost regexを使ってテキストファイルから部分集合を抽出しようとしています。現在、有効なメールアドレスの代わりに最初の有効な行とフルラインのみを返しています。私はイテレータを使い、サブマップを使ってみたが、成功しなかった。現在のコードは次のとおりです。C++でboost regexを使って部分集合を抽出する
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();
}
多分私のRegexは間違っていますが、それは私にとって適切な結果をもたらさないのです。 – John
正規表現でした、ありがとう。 – John