c语言 解析正则表达式
时间: 2023-07-12 09:34:42 浏览: 113
在 C 语言中,解析正则表达式可以使用 POSIX 标准提供的正则表达式库。该库由多个函数组成,可以用来编译和匹配正则表达式。以下是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <regex.h>
int main()
{
regex_t regex;
int reti;
char msgbuf[100];
// 编译正则表达式
reti = regcomp(®ex, "^a[0-9]+b$", 0);
if (reti) {
fprintf(stderr, "Could not compile regex\n");
exit(1);
}
// 匹配字符串
reti = regexec(®ex, "a123b", 0, NULL, 0);
if (!reti) {
printf("Match\n");
}
else if (reti == REG_NOMATCH) {
printf("No match\n");
}
else {
regerror(reti, ®ex, msgbuf, sizeof(msgbuf));
fprintf(stderr, "Regex match failed: %s\n", msgbuf);
exit(1);
}
// 释放正则表达式
regfree(®ex);
return 0;
}
```
上述代码使用 `regcomp()` 函数编译正则表达式,使用 `regexec()` 函数匹配字符串。如果匹配成功,输出 "Match";否则输出 "No match"。在编译和匹配过程中,可以使用 `regerror()` 函数打印错误信息。最后,需要使用 `regfree()` 函数释放正则表达式。
阅读全文