lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | #include <error.h> |
| 2 | #include <sys/types.h> |
| 3 | #include <regex.h> |
| 4 | #include <stdio.h> |
| 5 | #include <stdlib.h> |
| 6 | |
| 7 | int |
| 8 | main (void) |
| 9 | { |
| 10 | regex_t re; |
| 11 | regmatch_t ma[2]; |
| 12 | int reerr; |
| 13 | int res = 0; |
| 14 | |
| 15 | re_set_syntax (RE_DEBUG); |
| 16 | reerr = regcomp (&re, "0*[0-9][0-9]", 0); |
| 17 | if (reerr != 0) |
| 18 | { |
| 19 | char buf[100]; |
| 20 | regerror (reerr, &re, buf, sizeof buf); |
| 21 | error (EXIT_FAILURE, 0, "%s", buf); |
| 22 | } |
| 23 | |
| 24 | if (regexec (&re, "002", 2, ma, 0) != 0) |
| 25 | { |
| 26 | error (0, 0, "\"0*[0-9][0-9]\" does not match \"002\""); |
| 27 | res = 1; |
| 28 | } |
| 29 | puts ("Succesful match with \"0*[0-9][0-9]\""); |
| 30 | |
| 31 | regfree (&re); |
| 32 | |
| 33 | reerr = regcomp (&re, "[0a]*[0-9][0-9]", 0); |
| 34 | if (reerr != 0) |
| 35 | { |
| 36 | char buf[100]; |
| 37 | regerror (reerr, &re, buf, sizeof buf); |
| 38 | error (EXIT_FAILURE, 0, "%s", buf); |
| 39 | } |
| 40 | |
| 41 | if (regexec (&re, "002", 2, ma, 0) != 0) |
| 42 | { |
| 43 | error (0, 0, "\"[0a]*[0-9][0-9]\" does not match \"002\""); |
| 44 | res = 1; |
| 45 | } |
| 46 | puts ("Succesful match with \"[0a]*[0-9][0-9]\""); |
| 47 | |
| 48 | regfree (&re); |
| 49 | |
| 50 | return res; |
| 51 | } |