Tôi đang cố gắng trích xuất các bản con từ một tệp văn bản bằng cách sử dụng regex tăng cường. Hiện tại tôi chỉ trả lại dòng hợp lệ đầu tiên và dòng đầy đủ thay vì địa chỉ email hợp lệ. Tôi đã thử sử dụng iterator và sử dụng submatches nhưng tôi đã không thành công với nó. Đây là mã hiện tại:Trích xuất các submatch bằng cách sử dụng boost regex trong 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();
}
Có lẽ Regex của tôi sai nhưng không có kết quả phù hợp với tôi. – John
Là regex, cảm ơn. – John