fork(2) download
  1. #include <stdio.h>
  2. #include <regex.h>
  3.  
  4. void check_RE(char * r, regex_t RE)
  5. {
  6. printf ("%s - %s\n", r, !regexec(&RE, r, 0, NULL, 0) ? "Match" : "No Match");
  7. }
  8.  
  9.  
  10. int main ()
  11. {
  12. regex_t regex;
  13. int ret = regcomp(&regex, "^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}$", REG_EXTENDED);
  14. if(ret)
  15. printf("err1\n");
  16.  
  17. char RE_list[][32] =
  18. {
  19. "0.0.0.0",
  20. "123.456.789.123",
  21. "a.b.c.d",
  22. "1.2.34.567",
  23. "1111.1.1.1",
  24. ".1.1.1",
  25. "1,1,1,1"
  26. };
  27.  
  28. for(int i = 0; i < sizeof(RE_list) / sizeof(RE_list[0]); i++)
  29. check_RE(RE_list[i], regex);
  30.  
  31. return 0;
  32. }
Success #stdin #stdout 0s 4252KB
stdin
Standard input is empty
stdout
0.0.0.0 - Match
123.456.789.123 - No Match
a.b.c.d - No Match
1.2.34.567 - No Match
1111.1.1.1 - No Match
.1.1.1 - No Match
1,1,1,1 - No Match