C/C++中的正则表达式库GNU Regex Library&PCRE/PCRE++
2011-06-22 21:43
483 查看
2010-10-28 12:06
转载自 joec3
最终编辑 joec3
转载自 joec3
最终编辑 joec3
一、GNU Regex Library 1. 什么是GNU正则表达式库(GNU Regex Library) ? GNU正则表达式库是glibc(GNU C Library)的一部分,它提供与POSIX标准兼容的正则表达式匹配的接口。 这里是其主页:http://www.gnu.org/s/libc/manual/html_node/Regular-Expressions.html 下载该库点这里:gnuregex0_13 2. GNU Regex Library所提供的接口 (1)regcomp:
(1)regcomp与regfree必须配对使用,要不然会造成内存泄漏(类比malloc/free, new/delete) (2)regex_t结构:把字符串形式的正则表达式编译成regex_t这样的一个结构,方便后续的匹配工作 (3)regmatch_t结构:用来表示正则表达式中字符串中匹配的位置的结构,用起始位置的偏移量来表示的 (4)flags:用来配置匹配过程中的一些选项, 指定如何匹配,具体参见:http://www.opengroup.org/onlinepubs/007908799/xsh/regcomp.html (5)使用该库需要包含的头文件:sys/types.h和regex .h 4. GNU Regex Library使用举例
1. 什么是PCRE? 什么是PCRE++? PCRE,全称是Perl Compatible Regular Expressions。从名字我们可以看出PCRE库是与Perl中正则表达式相兼容的一个正则表达式库。PCRE是免费开源的库,它是由C语言实现 的,这里是它的官方主页:http://www.pcre.org/,感兴趣的 朋友可以在这里了解更多的内容。 要得到PCRE库,可以从这里下载:http://sourceforge.net/projects/pcre/files/ PCRE++是一个对PCRE库的C++封装,它提供了更加方便、易用的C++接口。这里是它的官方主页:http://www.daemon.de/PCRE,感兴趣的朋友可以在 这里了解更多的内容。 要得到PCRE++库,可以从这里下载:http://www.daemon.de/PcreDownload 2. PCRE接口介绍 (1). pcre_compile
PCRE++把PCRE库封装成了两个类,一个是RE_Options, 用来指定匹配选项,一个是RE,用来提供匹配相关的接口。RE_options类在这里我就不介绍了,我主要介绍一下RE类: (1)RE的构造函数传入正则表达式,并在构造函数中调用Init函数,将该正则表达进行编译 (2)RE的pattern()成员用来得到初始传入的正则表达式字符串 (3)RE的error()成员用来得到匹配过程中的出错信息 (4)RE的FullMatch()成员用来判断某字符串整体是否匹配指定正则表达式 (5)RE的PartialMatch()成员用来判断某字符串的部分是否匹配指定正则表达式 4. PCRE/PCRE++使用注意事项 (1)使用pcre请包含pcre.h头文件 (2)使用pcre_compile, pcre_exec后,记得调用pcre_free释放内存,以免造成内存泄露 (3)使用pcre编译的时候需要依赖libpcre.a (4)使用pcre++请包含pcrecpp.h头文件 (5)使用pcre++,RE类的析构函数会自动释放相关内存,因此不用担心内存泄露 (6)使用pcre++编译的时候需要依赖libpcrecpp.a (7)使用pcrecpp要使用pcrecpp命名空间 5. PCRE使用举例 下面是例程:
下面是例程:
转载出处:http://www.wuzesheng.com/?p=994 |
相关文章推荐
- linux下安装安装pcre-8.32 configure: error: You need a C++ compiler for C++ support
- c++的正则库 pcre
- unbuntu下安装安装pcre-8.37 configure: error: You need a C++ compiler for C++ support
- 【转】C/C++中的正则表达式库GNU Regex Library&PCRE/PCRE++
- 深入浅出C/C++中的正则表达式库(三)——PCRE, PCRE++
- linux下安装安装pcre-8.32 configure: error: You need a C++ compiler for C++ support
- C/C++中的正则表达式库GNU Regex Library&PCRE/PCRE++
- windows下C/C++的正则表达式库之PCRE、PCRE++
- pcre编译出错gcc-c++未安装
- linux下安装安装pcre-8.32 configure: error: You need a C++ compiler for C++ support
- ubuntu10.10下更新源问题,(搭建nginx环境时安装pcre和c++等问题)
- 正则库相关及windows-VS-C++环境下pcre && pcre++的编译和使用
- C++正则表达式之PCRE++
- 官方水晶报表.NET 应用程序实例下载(C#、Visual C++.NET)
- JAVA和C++区别
- c++做敏捷开发
- 浅析托管与非托管C++代码(转)
- C++到底是恐怖还是优秀,浅谈C C++的本质区别
- Visual.C++网络通信编程实用案例精选
- c++ 内存存储 解决char*p, char p[]的问题