C语言正则表达式函数

tech2025-04-09  15

结合上篇C语言断言,则可以以通用的方式,完成对所有函数调试过程输入参数的合法性校验。

#define REG_EXTENDED 1 #define REG_NOMATCH 0 int my_match(char* pattern,char* buf){ int status,i; int flag=REG_EXTENDED; regmatch_t pmatch[1]; const size_t nmatch=1; regex_t reg;

//编译正则模式 regcomp(&reg,pattern,flag); //执行正则表达式和缓存的比较 status=regexec(&reg,buf,nmatch,pmatch,0); //打印匹配的字符串 for(i=pmatch[0].rm_so;i<pmatch[0].rm_eo;++i){ putchar(buf[i]); } printf("\n"); regfree(&reg);

return status; }

int get_regex(void) { char pattern[1024]="1[0-9]{10}$"; char buf[1024]=“41509030127”; int status=my_match(pattern,buf);

if(status==REG_NOMATCH) printf("No match!\n"); else if(0 == status){ printf("匹配成功!\n"); } return 0;

}


1-9 ↩︎

最新回复(0)