#include <regex>
#include <string>
#include <iostream>
using namespace std;
int main()
{
string generalCast = R"(\d+\.\d+\.\d+\.\d+_(\d+\.)(\d+\.*)+_\d+)";
string input = "127.27.18.4_2.125.2.365.24.2_10";
string ip = "";
if (regex_match(input, regex(generalCast)))
{
string ipCast = R"(\d+\.\d+\.\d+\.\d+)";
string oidCast = R"(_(\d+\.)(\d+\.*)+_)";
string oid = "";
string polling = "";
std::cout << "string object matched\n";
smatch matches;
if (regex_search(input, matches, regex(ipCast)))
{
std::cout << "ipCast matched: " << matches[0] << "\n";
ip = matches[0];
oid = "Error, bad OID: " + input;
smatch matches1;
if (regex_search(input, matches1, regex(oidCast)))
{
std::cout << "oidCast matched\n";
oid = regex_replace((string)matches1[0], regex("_"), "");
std::cout << "oid: " << oid << "\n";
smatch matches2;
regex_search(input, matches2, regex(R"(\d+$)"));
if (matches2.length() > 0)
{
polling = matches2[0];
std::cout << "Polling: " << polling << "\n";
}
}
}
}
return 0;
}
I2luY2x1ZGUgPHJlZ2V4PgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKCXN0cmluZyBnZW5lcmFsQ2FzdCA9IFIiKFxkK1wuXGQrXC5cZCtcLlxkK18oXGQrXC4pKFxkK1wuKikrX1xkKykiOwoJc3RyaW5nIGlucHV0ID0gIjEyNy4yNy4xOC40XzIuMTI1LjIuMzY1LjI0LjJfMTAiOwoJc3RyaW5nIGlwID0gIiI7CgoJaWYgKHJlZ2V4X21hdGNoKGlucHV0LCByZWdleChnZW5lcmFsQ2FzdCkpKQoJewoJICAgIHN0cmluZyBpcENhc3QgPSBSIihcZCtcLlxkK1wuXGQrXC5cZCspIjsKCSAgICBzdHJpbmcgb2lkQ2FzdCA9IFIiKF8oXGQrXC4pKFxkK1wuKikrXykiOwoJCgkgICAgc3RyaW5nIG9pZCA9ICIiOwoJICAgIHN0cmluZyBwb2xsaW5nID0gIiI7CgkgICAgc3RkOjpjb3V0IDw8ICJzdHJpbmcgb2JqZWN0IG1hdGNoZWRcbiI7CgkgICAgc21hdGNoIG1hdGNoZXM7CgkgICAgaWYgKHJlZ2V4X3NlYXJjaChpbnB1dCwgbWF0Y2hlcywgcmVnZXgoaXBDYXN0KSkpCgkgICAgewoJICAgIAlzdGQ6OmNvdXQgPDwgImlwQ2FzdCBtYXRjaGVkOiAiIDw8IG1hdGNoZXNbMF0gPDwgIlxuIjsKCSAgICAgICAgaXAgPSBtYXRjaGVzWzBdOwoJICAgICAgICBvaWQgPSAiRXJyb3IsIGJhZCBPSUQ6ICIgKyBpbnB1dDsKCSAgICAgICAgc21hdGNoIG1hdGNoZXMxOwoJICAgICAgICBpZiAocmVnZXhfc2VhcmNoKGlucHV0LCBtYXRjaGVzMSwgcmVnZXgob2lkQ2FzdCkpKQoJICAgICAgICB7CgkgICAgICAgIAlzdGQ6OmNvdXQgPDwgIm9pZENhc3QgbWF0Y2hlZFxuIjsKCSAgICAgICAgICAgIG9pZCA9IHJlZ2V4X3JlcGxhY2UoKHN0cmluZyltYXRjaGVzMVswXSwgcmVnZXgoIl8iKSwgIiIpOwoJICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJvaWQ6ICIgPDwgb2lkIDw8ICJcbiI7CgkgICAgICAgICAgICAKCSAgICAgICAgICAgIHNtYXRjaCBtYXRjaGVzMjsKCSAgICAgICAgICAgIHJlZ2V4X3NlYXJjaChpbnB1dCwgbWF0Y2hlczIsIHJlZ2V4KFIiKFxkKyQpIikpOwoJICAgICAgICAgICAgaWYgKG1hdGNoZXMyLmxlbmd0aCgpID4gMCkKCSAgICAgICAgICAgIHsKCSAgICAgICAgICAgICAgICBwb2xsaW5nID0gbWF0Y2hlczJbMF07CgkgICAgICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJQb2xsaW5nOiAiIDw8IHBvbGxpbmcgPDwgIlxuIjsKCSAgICAgICAgICAgIH0KCSAgICAgICAgfQoJICAgIH0KCX0KCXJldHVybiAwOwp9