| #include <error.h> |
| #include <sys/types.h> |
| #include <regex.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| int |
| main (void) |
| { |
| regex_t re; |
| regmatch_t ma[2]; |
| int reerr; |
| int res = 0; |
| |
| re_set_syntax (RE_DEBUG); |
| reerr = regcomp (&re, "0*[0-9][0-9]", 0); |
| if (reerr != 0) |
| { |
| char buf[100]; |
| regerror (reerr, &re, buf, sizeof buf); |
| error (EXIT_FAILURE, 0, "%s", buf); |
| } |
| |
| if (regexec (&re, "002", 2, ma, 0) != 0) |
| { |
| error (0, 0, "\"0*[0-9][0-9]\" does not match \"002\""); |
| res = 1; |
| } |
| puts ("Succesful match with \"0*[0-9][0-9]\""); |
| |
| regfree (&re); |
| |
| reerr = regcomp (&re, "[0a]*[0-9][0-9]", 0); |
| if (reerr != 0) |
| { |
| char buf[100]; |
| regerror (reerr, &re, buf, sizeof buf); |
| error (EXIT_FAILURE, 0, "%s", buf); |
| } |
| |
| if (regexec (&re, "002", 2, ma, 0) != 0) |
| { |
| error (0, 0, "\"[0a]*[0-9][0-9]\" does not match \"002\""); |
| res = 1; |
| } |
| puts ("Succesful match with \"[0a]*[0-9][0-9]\""); |
| |
| regfree (&re); |
| |
| return res; |
| } |