#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(®,pattern,flag); //执行正则表达式和缓存的比较 status=regexec(®,buf,nmatch,pmatch,0); //打印匹配的字符串 for(i=pmatch[0].rm_so;i<pmatch[0].rm_eo;++i){ putchar(buf[i]); } printf("\n"); regfree(®);
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 ↩︎