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