[C++] 纯文本查看 复制代码
#include <sys/types.h>
#include <regex.h>
int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags);
[C++] 纯文本查看 复制代码
#include <stdio.h>
#include <string.h>
#include <regex.h>
#define nmatch 8
int main(int argc, char *argv[])
{
regex_t preg;
char *regex_rule = "[0-9]{3}abc";
regmatch_t pmatch[nmatch];
unsigned int i, len;
/* 初始化 pattern buffer */
bzero(&preg, sizeof(regex_t));
if (regcomp(&preg, regex_rule, REG_EXTENDED) == 0) {
if (regexec(&preg, argv[1], nmatch, pmatch, 0) == 0) {
for (i = 0; i < nmatch; i++) {
if (pmatch.rm_so == -1) continue;
len = pmatch.rm_eo - pmatch.rm_so;
printf ("%.*s\n", len, (argv[1] + pmatch.rm_so));
}
}
regfree(&preg);
}
return 0;
}