PCRE(Perl Compatible Regular Expressions)
The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE has its own native API, as well as a set of wrapper functions that correspond to the POSIX regular expression API. The PCRE library is free, even for building proprietary software.
PCRE库提供了正则表达式匹配功能,它使用与Perl 5一致的语法语义。它的API即包括native的API,又包含一套包装了POSIX regular API的API。
PCRE是免费的,也可用于商业用途。
下载地址:http://sourceforge.net/projects/pcre/
README的第4节,Building PCRE on non-Unix-like systems,提到无论是否使用autotools,在非UNIX系统下编译PCRE都应参考NON-AUTOTOOLS-BUILD。由于PCRE只用到了Standard C functions,它可以在任何Standard C Compliler/Library的系统下编译。
在NON-AUTOTOOLS-BUILD中,包括了在各种非UNIX系统下的编译方法。在windows下,可以手工编译,或通过MinGW或Cygwin,使用"configure, make, make install"这种范例编译,也推荐使用CMake这种更为直接的方式。BUILDING PCRE ON WINDOWS WITH CMAKE一节详细说明了使用CMake编译的步骤和注意事项,摘录并翻译如下:
以下说明贡献自一位PCRE使用者。请保证各条说明都被完全正确执行,否则可能出现错误。如果有错误发生,最好先删除CMake缓存再重新编译。在CMake GUI,可以通过选择"File > Delete Cache"来清空缓存。
1. 从 http://www.cmake.org/下载最新版本的CMake,确保cmake\bin在你的path中(注:我的CMake版本是3.1;安装时注意选择"intsall for all users and add to system path")。
2. 解压PCRE源码到代码目录,如C:\pcre,需保证你的本地时间不能比代码目录文件的日期早。
3. 新建一个新的,空的build目录,最好是代码目录的子目录。如C:\pcre\pcre-xx\build(注:我是把解压出来的文件放在pcre\pcre-8.36下,再在pcre-8.36下建build目录)
4. 从你的编译工具的shell环境启动cmake-gui,例如Msys for Msys/MinGW或Visual Studio Command Prompt for VC/VC++。不要尝试从Windows开始菜单启动Cmake,因为这可能导致错误。(注:Visual Studio Command Prompt可以在Visual Studio Tools下找到;点击后进入shell环境,使用"cmake-gui"命令启动cmake的GUI,注意Cmake的早期版本(如2.6)不是此命令。)
5. 在source和build directories处分别填入C:\pcre\pcre-xx and C:\pcre\pcre-xx\build(注:根据我的目录结构,就是C:\pcre\pcre-8.36 and C:\pcre\pcre-8.36\build)
6. 点击"Configure"
7. 选择对应的IDE/build工具(注:一定注意选择完全正确的版本,如果出现错误可以查看log找到原因,并记得delete cache)
8. GUI会列出若干配置选项,就是在这里,你可以使能UTF-8支持或者其他PCRE可选功能。
9. 再次点击"Configure"。此时,相邻的"Generate"也可以点击了。
10. 点击"Generate"
11. build目录将包括一个可用的build system,对于Visual Studio,就是一个solution文件;对于MinGW就是一些makefiles。从Cmake GUI退出,在你的编译器或IDE下使用生成的build system编译。使用MinGW,可输入“make”命令;使用Visual Studio,就是打开PCRE solution,Debug或者Release编译ALL_BUILD工程。
(注:Release下将生成.lib等文件)
在VS下使用PCRE
1. 添加工程的头文件目录:
project properties -> C/C++ -> common -> include,填入\pcre\pcre-8.36\build
2. 添加lib库路径:
project properties -> Linker -> common -> include,填入\pcre\pcre-8.36\build\Release
3. 添加引用的lib文件名:
project properties -> Linker -> input -> dependencies,填入pcre.lib(pcrecpp.lib pcreposix.lib)
在文件中加入以下语句后,即可以使用PCRE进行正则表达式处理了。
#define PCRE_STATIC
#include "pcre.h"
微信
支付宝