C语言的方式 带控制字符串的正则表达式怎么写
带控制字符串的正则表达式 在C#和java方式会弄,C的方式 怎么弄 都没弄成功 求教C大神
C语言中使用正则表达式一般分为三部:
1.编译正则表达式regcomp()
2.匹配正则表达式 regexec()
3.释放正则表达式 regfree()
可以参考POSIX 规定
程序代码:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pcre.h>
void match(const char *pattern, const char *string) {
const char *error;
int errorOffset;
pcre *compiledPattern;
int result;
// Compile the pattern
compiledPattern = pcre_compile(pattern, 0, &error, &errorOffset, NULL);
if (!compiledPattern) {
printf("Error compiling pattern: %s\n", error);
return;
}
// Match the string
result = pcre_exec(compiledPattern, NULL, string, strlen(string), 0, 0, NULL, 0);
if (result < 0) {
switch (result) {
case PCRE_ERROR_NOMATCH:
printf("No match.\n");
break;
default:
printf("Error matching pattern.\n");
break;
}
} else {
printf("Matched: %s\n", string);
}
// Free the compiled pattern
pcre_free(compiledPattern);
}
int main() {
const char *pattern = "^[0-9]*@.*$"; // 控制字符串为数字 + @,后面跟任何字符
const char *string1 = "123@abc"; // 匹配成功
const char *string2 = "abc@123"; // 匹配失败
match(pattern, string1);
match(pattern, string2);
return 0;
}