diff options
| author | Tyge Løvset <[email protected]> | 2022-08-02 09:32:22 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2022-08-02 09:32:22 +0200 |
| commit | a0b56360cc65f9add1ab169beeb063a3cbd1322f (patch) | |
| tree | e0c73d0a9c19cd05eaa3f0c1d4f680b528c13b05 /examples | |
| parent | 23ed40d55f3ff2b30f3b3fe01edfb51e418292b4 (diff) | |
| download | STC-modified-a0b56360cc65f9add1ab169beeb063a3cbd1322f.tar.gz STC-modified-a0b56360cc65f9add1ab169beeb063a3cbd1322f.zip | |
Changed c_foreach_match (m, re, input) to take pointer: cregex* re.
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/regex2.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/examples/regex2.c b/examples/regex2.c index c3f1e6d6..257cdc1e 100644 --- a/examples/regex2.c +++ b/examples/regex2.c @@ -5,23 +5,26 @@ int main() { - const char* inputs[] = {"date: 2024-02-29 leapyear day, christmas eve is on 2022-12-24.", "https://en.cppreference.com/w/cpp/regex/regex_search", "!123abcabc!"}; - const char* patterns[] = {"(\\d\\d\\d\\d)[-_](1[0-2]|0[1-9])[-_](3[01]|[12][0-9]|0[1-9])", - "(https?://|ftp://|www\\.)([0-9A-Za-z@:%_+~#=-]+\\.)+([a-z][a-z][a-z]?)(/[/0-9A-Za-z\\.@:%_+~#=\\?&-]*)?", - "!((abc|123)+)!", + struct { const char *pattern, *input; } s[] = { + {"(\\d\\d\\d\\d)[-_](1[0-2]|0[1-9])[-_](3[01]|[12][0-9]|0[1-9])", + "date: 2024-02-29 leapyear day, christmas eve is on 2022-12-24."}, + {"(https?://|ftp://|www\\.)([0-9A-Za-z@:%_+~#=-]+\\.)+([a-z][a-z][a-z]?)(/[/0-9A-Za-z\\.@:%_+~#=\\?&-]*)?", + "https://en.cppreference.com/w/cpp/regex/regex_search"}, + {"!((abc|123)+)!", "!123abcabc!"} }; - c_forrange (i, c_arraylen(inputs)) + + c_forrange (i, c_arraylen(s)) { c_auto (cregex, re) { - int res = cregex_compile(&re, patterns[i], 0); + int res = cregex_compile(&re, s[i].pattern, 0); if (res < 0) { printf("error in regex pattern: %d\n", res); continue; } - printf("input: %s\n", inputs[i]); + printf("input: %s\n", s[i].input); - c_foreach_match (m, re, inputs[i]) { + c_foreach_match (m, &re, s[i].input) { c_forrange (int, j, cregex_captures(&re)) printf(" submatch %d: %.*s\n", j, c_ARGsv(m[j])); puts(""); |
