有没有开源的C语言实现的正则表达式
2个回答
展开全部
正则表达式 是一门数学应用到计算机中的表达式。不是专属于哪种语言,现在各大主流语言都可以通过标准库 或者 模块 或者函数调用正则表达式。
包括 C C++ PYTHON ruby PHP ASP等等
下面贴出一段C语言 使用正则表达式的例子
1 #include<stdio.h>
2 #include<sys/types.h>
3 #include<regex.h>
4 #include<memory.h>
5 #include<stdlib.h>
6
7 int main(){
8
9 char *bematch = "hhhericchd@gmail.com";
10 char *pattern = "h{3,10}(.*)@.{5}.(.*)";
11 char errbuf[1024];
12 char match[100];
13 regex_t reg;
14 int err,nm = 10;
15 regmatch_t pmatch[nm];
16
17 if(regcomp(®,pattern,REG_EXTENDED) < 0){
18 regerror(err,®,errbuf,sizeof(errbuf));
19 printf("err:%s\n",errbuf);
20 }
21
22 err = regexec(®,bematch,nm,pmatch,0);
23
24 if(err == REG_NOMATCH){
25 printf("no match\n");
26 exit(-1);
27 }else if(err){
28 regerror(err,®,errbuf,sizeof(errbuf));
29 printf("err:%s\n",errbuf);
30 exit(-1);
31 }
32
33 for(int i=0;i<10 && pmatch[i].rm_so!=-1;i++){
34 int len = pmatch[i].rm_eo-pmatch[i].rm_so;
35 if(len){
36 memset(match,'\0',sizeof(match));
37 memcpy(match,bematch+pmatch[i].rm_so,len);
38 printf("%s\n",match);
39 }
40 }
41 return 0;
42 }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询