Я использую следующий код, который похож на Stroustrup's C ++ 4th Edition Page 127 & 128. В журнале вывода, приведенном ниже, он печатает первое совпадение, но не совпадение с конечными цифрами -XXXX.
Кто-нибудь знает, почему конечные цифры не совпадают и / или печатаются ??
Спасибо
#include <iostream>
#include <regex>
using namespace std;
int main(int argc, char *argv[])
{
// ZIP code pattern: XXddddd-dddd and variants
regex pat (R"(\w{2}\s*\d{5}(−\d{4})?)");
int lineno = 0;
for (string line; getline(cin,line);) {
++lineno;
smatch matches; // matched strings go here
if (regex_search(line, matches, pat)) // search for pat in line
for (auto p : matches) {
cout << p << " ";
}
cout << endl;
// cout << lineno << ": " << matches[0] << '\n';
}
return 0;
}
Журнал вывода:
$ ./a.out
AB00000-0000
AB00000