当您指示regex(3)功能时,这可能会让您开始.以下是一个与其参数相匹配的简单程序.但是,如果你对C比较陌生,那么你会想要慢慢使用regex(3),因为你将使用指针和数组以及 - regmatch_t提供补偿和狮子,老虎和熊.;)
$ ./regexec '[[:digit:]]' 56789 alpha " " foo12bar
matched: 56789
matched: foo12bar
$ ./regexec '[[:digit:]](foo'
error: Unmatched ( or \(
$ ./regexec '['
error: Invalid regular expression
Run Code Online (Sandbox Code Playgroud)
......和来源:
#include <sys/types.h>
#include <regex.h>
#include <stdio.h>
int main(int argc, char **argv) {
int r;
regex_t reg;
++argv; /* Danger! */
if (r = regcomp(®, *argv, REG_NOSUB|REG_EXTENDED)) {
char errbuf[1024];
regerror(r, ®, errbuf, sizeof(errbuf));
printf("error: %s\n", errbuf);
return 1;
}
for (++argv; *argv; ++argv) {
if (regexec(®, *argv, 0, NULL, 0) == REG_NOMATCH)
continue;
printf("matched: %s\n", *argv);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)