用C写一个正则表达式
时间: 2023-02-28 17:22:25 浏览: 105
C 语言本身不支持正则表达式,但是你可以使用第三方库,例如 PCRE (Perl Compatible Regular Expressions),在 C 语言程序中使用正则表达式。
下面是一个使用 PCRE 库在 C 语言中实现正则表达式匹配的简单示例:
```
#include <pcre.h>
#include <stdio.h>
int main() {
const char* pattern = "^[A-Z][a-z]+";
const char* subject = "Hello, World!";
int errornumber;
int erroffset;
pcre* re;
re = pcre_compile(pattern, 0, &errornumber, &erroffset, NULL);
if (re == NULL) {
printf("PCRE compilation failed at offset %d: %d\n", erroffset, errornumber);
return 1;
}
int rc = pcre_exec(re, NULL, subject, strlen(subject), 0, 0, NULL, 0);
if (rc < 0) {
printf("PCRE matching failed: %d\n", rc);
} else {
printf("PCRE matching succeeded\n");
}
pcre_free(re);
return 0;
}
```
这个程序将检查字符串 "Hello, World!" 是否符合正则表达式 `^[A-Z][a-z]+` 的匹配规则,即是否以一个大写字母开头,后面跟着一个或多个小写字母。
阅读全文