标准c/c++不支持正则表达式,但linux下内置正则表达式处理,相对java的Pattern而言,处理比较繁琐。
#include <regex.h> /** *@brief 正则表达式测试 */ void reg_test() { const char *name = "jmA1234kettas"; const char *pattern = "^jm[A-Z][0-9]{1,}(.*)"; regex_t reg; regmatch_t pmatch[5]; int ret = regcomp(®,pattern,REG_EXTENDED); // 编译正则表达式,为reg分配内存 assert(ret==0); ret = regexec(®,name,5,pmatch,0); // 匹配正则表达式 if(ret == 0) { printf("Match\n"); // 提取组信息,i从1开始 for(int i=1;i<5&&pmatch[i].rm_so!=-1;i++) { char buff[200]; memset(buff,'\0',200); int len = pmatch[i].rm_eo - pmatch[i].rm_so; // 匹配长度 strncpy(buff,name+pmatch[i].rm_so,len); printf("buff:%s\n",buff); // 显示kettas } }else if(ret == REG_NOMATCH) { printf("No match\n"); }else { char err[100]; regerror(ret,®,err,100); // 打印错误 printf("error:%s\n",err); } regfree(®); // 释放内存,重复使用regcomp()时,一定要调用regfree(),防止内存漏洞 }
当前Linux(2.6.32)上内置的正则表达式功能比较弱,很多语法不支持,不支持懒惰模式, 位置指定。\d也不支持,只能用[0-9]代替。
相关推荐
C语言不包含STL中的大量的数据结构,为此,要在C语言中使用正则式,需要使用另外单独的其他的库,本资源是可以直接使用的正则式库,通过验证
linux下 用C语言 写的正则表达式
正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列。拥有强大的字符搜索功能。也非常方便的搜索过滤出我们想要的内容。
linux下posix标准的正则表达式库,支持regcomp, regexec等,可以放到vs2010或vs2012下进行编译。
如果用户熟悉Linux下的sed、awk、grep或vi,那么对正则表达式这一概念肯定不会陌生。...千万不要以为正则表达式只是Perl、Python、Bash等脚本语言的专利,作为C语言程序员,用户同样可以在自己的程序中运用正则表达式。
如何在C语言中巧用正则表达式
如安在C语言中巧用正则表达式(linux).docx
Linux C Regex正则表达式 库 修改 (支持Android下C++调用)
标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。 C语言处理正则...
需要大家牢记:正则表达式与通配符不一样,它们表示的含义并不相同 正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理。本文以grep为例来讲解正则表达式。 grep命令 功能:输入...
正则表达式是在文件中匹配符合条件的字符串的 ls find cp是不支持正则表达式的 但是grep awk sed支持正则表达式 [root@hadoop-bigdata01 test]# touch aa [root@hadoop-bigdata01 test]# touch aab aabb [root@...
一段用于linux下的 C语言使用正则表达式的例子 使用C regex 简要使用示例 编译语句如下: g++ regex_test.cpp -g -o regex_test
grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep。Windows...
正则表达式快速入门,30分钟上手,快速掌握正则表达式基本用法
如果你是一位接触计算机语言的工作者,那么你会在主流操作系统(*nix[Linux, Unix等]、Windows、HP、BeOS等)、主流的开发语言(delphi、Scala、PHP、C#、Java、C++、Objective-c、Swift、VB、Javascript、Ruby以及...
p=an=ta_cl|uuid=466015120187637356708047806953|s=2001|c=tw|ch=3010000001$3010000001|er=GRJ90|av=3.9.263|ki=2$0|wl=3|se=0$0$0|ct=0$0|cl=0$1$0$0 HTTP/1.1" 0.001 200 33 "Dalvik/1.4.0 (Linux; U; Android ...
如何在C语言中巧用正则表达式(linux).docx