fork(1) download
  1. #include <regex>
  2. #include <string>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. string generalCast = R"(\d+\.\d+\.\d+\.\d+_(\d+\.)(\d+\.*)+_\d+)";
  9. string input = "127.27.18.4_2.125.2.365.24.2_10";
  10. string ip = "";
  11.  
  12. if (regex_match(input, regex(generalCast)))
  13. {
  14. string ipCast = R"(\d+\.\d+\.\d+\.\d+)";
  15. string oidCast = R"(_(\d+\.)(\d+\.*)+_)";
  16.  
  17. string oid = "";
  18. string polling = "";
  19. std::cout << "string object matched\n";
  20. smatch matches;
  21. if (regex_search(input, matches, regex(ipCast)))
  22. {
  23. std::cout << "ipCast matched: " << matches[0] << "\n";
  24. ip = matches[0];
  25. oid = "Error, bad OID: " + input;
  26. smatch matches1;
  27. if (regex_search(input, matches1, regex(oidCast)))
  28. {
  29. std::cout << "oidCast matched\n";
  30. oid = regex_replace((string)matches1[0], regex("_"), "");
  31. std::cout << "oid: " << oid << "\n";
  32.  
  33. smatch matches2;
  34. regex_search(input, matches2, regex(R"(\d+$)"));
  35. if (matches2.length() > 0)
  36. {
  37. polling = matches2[0];
  38. std::cout << "Polling: " << polling << "\n";
  39. }
  40. }
  41. }
  42. }
  43. return 0;
  44. }
Success #stdin #stdout 0s 3504KB
stdin
Standard input is empty
stdout
string object matched
ipCast matched: 127.27.18.4
oidCast matched
oid: 2.125.2.365.24.2
Polling: 10