#include <string>
#include <iostream>
#include <regex>
using namespace std;
int main() {
std::regex rx_extract("[0-9]+");
std::regex rx_validate(R"(^\d+(?:,\d+)*$)");
std::string s = "1,2,3,5";
if (regex_match(s, rx_validate)) {
for(std::sregex_iterator i = std::sregex_iterator(s.begin(), s.end(), rx_extract);
i != std::sregex_iterator();
++i)
{
std::smatch m = *i;
std::cout << m.str() << '\n';
}
}
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmVnZXg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXN0ZDo6cmVnZXggcnhfZXh0cmFjdCgiWzAtOV0rIik7CglzdGQ6OnJlZ2V4IHJ4X3ZhbGlkYXRlKFIiKF5cZCsoPzosXGQrKSokKSIpOwoJc3RkOjpzdHJpbmcgcyA9ICIxLDIsMyw1IjsKCWlmIChyZWdleF9tYXRjaChzLCByeF92YWxpZGF0ZSkpIHsKCQlmb3Ioc3RkOjpzcmVnZXhfaXRlcmF0b3IgaSA9IHN0ZDo6c3JlZ2V4X2l0ZXJhdG9yKHMuYmVnaW4oKSwgcy5lbmQoKSwgcnhfZXh0cmFjdCk7CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgIT0gc3RkOjpzcmVnZXhfaXRlcmF0b3IoKTsKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytpKQoJICAgIHsKCSAgICAgICAgc3RkOjpzbWF0Y2ggbSA9ICppOwoJICAgICAgICBzdGQ6OmNvdXQgPDwgbS5zdHIoKSA8PCAnXG4nOwoJICAgIH0KCX0KCXJldHVybiAwOwp9Cg==