PCRE百科介绍:

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。Boost太庞大了,使用boost regex后,程序的编译速度明显变慢。测试了一下,同样一个程序,使用boost::regex编译时需要3秒,而使用pcre不到1秒。因此改用pcre来解决C语言中使用正则表达式的问题

pcre库官网:http://www.pcre.org/

下载源代码放到 C:\pcre-8.35

运行 msys

cd /c/pcre-8.35

configure --disable-cpp --prefix=/local/pcre    #配置参数:将生成的库文件保存到 msys/local/pcre 文件夹中

make

make install  #完成后,在 msys/local/pcre 文件夹中就能找到 include,lib,include文件夹。

就可以在codeblocks中配置使用prce了。

---------------------------------------------------------

configure选项:

--disable-cpp:不组建c++封装

--enable-utf8:让PCRE支持UTF8

--enable-unicode-properties:支持/P,/p,/X识别unicode字符

--enable-newline-is-crlf --enable-newline-is-anycrlf --enable-newline-is-any:制定行结束符

--enable-bsr-anycrlf:让/r匹配/r,/n或/r/n

--with-posix-malloc-threshold=xx(数字):如果调用POSIX接口,模式中捕获括号大于10时需要额外的存储空间,这里数字就是设定其阈值。

--with-match-limit=xx(数字):限制一次匹配时使用的资源数,默认值为10000000

--with-match-limit-recursion=xx(数字):限制一次匹配时的递归深度,默认为10000000(几乎可以说是无限)

--with-link-size=x(数字):默认编译好的模式大小约64k,通过该选项可以增加其大小,但增加过多会降低效率。

--disable-stack-for-recursion:使用自己的栈进行递归调用而不是默认栈以减少空间使用,但会降低效率。

--enable-rebuild-chartables:生成pcre_chartables.c而不是从pcre_chartables.c.dist中拷贝。

--enable-ebcdic:使用IBM ebcdic编码,隐含了--enable-rebuild-chartables,这样就不支持utf8了。

--enable-pcregrep-libz,--enable-pcregrep-libbz2:使用libz或/和libbz2编译pcregrep

--enable-pcretest-libreadline:使用libreadline编译pcretest,这样在终端上输入时pcretest就具有行编辑和历史记录功能。注意libreadline是GPL-licensed。

------------------------------------------------------------------

参考资料:

Linux和windows下编译pcre - http://blog.csdn.net/jollyjumper/article/details/5700024

2014-06-27

编译 pcre - 开源的正则表达式(库)的更多相关文章

  1. vs2015下编译免费开源的jpeg库,ijg的jpeg.lib

    vs2015下编译免费开源的jpeg库,ijg的jpeg.lib 1. 去Independent JPEG Group官网www.ijg.org下载jpegsrc,我下载的版本是jpegsrc9c.z ...

  2. (原)linux下利用cmake来编译jthread开源库

    其实上次在用hisi3531平台的时候,就已经编译过一次这个库了,这次换了平台环境,交叉编译器变成了arm-hisiv100-linux-工具链,所以,没办法只能重新来过. 因为之前编译过,所以这次还 ...

  3. 值得推荐的C/C++开源框架和库

    值得推荐的C/C++开源框架和库  转自:http://www.cnblogs.com/lidabo/p/5514155.html   - 1. Webbench Webbench是一个在Linux下 ...

  4. 深入浅出C/C++中的正则表达式库

    写在前面: 本文是面向有正则表达式基础的读者朋友的,如果你还不知道正则表达式是什么,请先到这里学习一下  :http://en.wikipedia.org/wiki/Regular_expressio ...

  5. 值得学习的C语言开源项目和库

    收集一些C/C++相关的源码,如有更高效的库,请提醒我 补充上去 C/C++相关交流Q群 1414577 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具. ...

  6. 转载一篇c++开源框架和库

    值得学习的C语言开源项目 -1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性 ...

  7. linux下编译qt5.6.0静态库——configure配置

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  8. iOS、mac开源项目及库汇总

    原文地址:http://blog.csdn.net/qq_26359763/article/details/51076499    iOS每日一记------------之 中级完美大整理 iOS.m ...

  9. linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

随机推荐

  1. Android——Activity的简绍

    Activity Activity的运行机制其实和JavaEE中的servlet很像,而我们的Android系统也就相当与其servlet容器,Activity在其中进行创建实例.初始化.运行.销毁等 ...

  2. python之tips(三)--为什么Python有相同的不可变对象id不同?

    参考 : https://www.jianshu.com/p/0f6f0db0ce8f

  3. ubunto启动chrome报错

    /usr/bin/google-chrome-stable[5199:5199:0703/143543.136117:ERROR:zygote_host_impl_linux.cc(88)] Runn ...

  4. 如何在集合中巧用Where来查找相关元素

    在我们的项目中我们经常会查找一些集合中的重要元素,当然我们可以使用常规的foreach循环和if语句来查询,但是我们要学会使用System.Linq命名空间下面的静态类Enumerable下面的静态方 ...

  5. JSP从入门到精通

    1. jsp开发环境配置 在windows下配置jsp的开发环境: 假设已经安装好了jdk,下面来配置tomcat 去http://tomcat.apache.org 下载tomcat windows ...

  6. easyui combobox 在datagrid中动态加载数据

    场景:datagrid 中用编辑框修改数据,有一个列使用的combobox  在可编辑的时候需要动态绑定数据,这个数据是在根据其他条件可变的 思路:在每次开启编辑框的时候动态绑定数据, datagri ...

  7. java json转换(一)

    主要使用了2个类 JsonConvert.class 和 ConvertHelper.class 由于常规转json.只要model牵涉到复杂的关联实体对象.那么就会出现 深度循环的错误. 因此这里通 ...

  8. JS的初步了解

    JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备.JavaScript 是脚本语言 HTML 中的 ...

  9. Cash Machine POJ - 1276 多重背包二进制优化

    题意:多重背包模型  n种物品 每个m个  问背包容量下最多拿多少 这里要用二进制优化不然会超时 #include<iostream> #include<cstdio> #in ...

  10. 洛谷P1414又是毕业季二题解

    题目 思想: 首先这个题必定是一个数学题,肯定不是一个一个枚举得到解,这样肯定会T,所以我们就应该想一些别的方法,. 分析: 比如,答案,一定是递减的,因为该答案所满足的条件肯定是越来越苛刻的,所以我 ...