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; }