編譯 pcre - 開源的正則表達式(庫)

PCRE百科介紹:c++

PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 兼容的正則表達式庫。這些在執行正規表達式模式匹配時用與Perl 5一樣的語法和語義是頗有用的。Boost太龐大了,使用boost regex後,程序的編譯速度明顯變慢。測試了一下,一樣一個程序,使用boost::regex編譯時須要3秒,而使用pcre不到1秒。所以改用pcre來解決C語言中使用正則表達式的問題正則表達式

 

pcre庫官網:http://www.pcre.org/windows

 

下載源代碼放到 C:\pcre-8.35測試

 

運行 msysui

cd /c/pcre-8.35編碼

configure --disable-cpp --prefix=/local/pcre    #配置參數:將生成的庫文件保存到 msys/local/pcre 文件夾中.net

makecode

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

 

就能夠在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

 

 

名品推薦:再造淑女 嬌希戀 婉胭

相關文章
相關標籤/搜索