#include <iostream>
#include <string>
#include <regex>
int find_year(std::string line, unsigned index = 0)
{
std::smatch match;
std::regex expr("\\b([0-9]{4})\\b");
if ( std::regex_search(line,match,expr) )
return std::stoi(match[index]);
else
throw std::invalid_argument("No number matching a year found!");
}
int main()
{
int year = find_year("Matthew Alan Aberegg 1963 452,627");
std::cout << year << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8cmVnZXg+CgppbnQgZmluZF95ZWFyKHN0ZDo6c3RyaW5nIGxpbmUsIHVuc2lnbmVkIGluZGV4ID0gMCkKewogIHN0ZDo6c21hdGNoIG1hdGNoOwogIHN0ZDo6cmVnZXggZXhwcigiXFxiKFswLTldezR9KVxcYiIpOwoKICBpZiAoIHN0ZDo6cmVnZXhfc2VhcmNoKGxpbmUsbWF0Y2gsZXhwcikgKQogICAgcmV0dXJuIHN0ZDo6c3RvaShtYXRjaFtpbmRleF0pOwogIGVsc2UKICAgIHRocm93IHN0ZDo6aW52YWxpZF9hcmd1bWVudCgiTm8gbnVtYmVyIG1hdGNoaW5nIGEgeWVhciBmb3VuZCEiKTsKfQoKaW50IG1haW4oKQp7CiAgaW50IHllYXIgPSBmaW5kX3llYXIoIk1hdHRoZXcgQWxhbiBBYmVyZWdnIDE5NjMgNDUyLDYyNyIpOwogIHN0ZDo6Y291dCA8PCB5ZWFyIDw8ICJcbiI7Cn0K