1. 程式人生 > >c++ regex第三方庫 當然現在c++11也支援regex

c++ regex第三方庫 當然現在c++11也支援regex

1. 最省事的是 ATL 裡面自帶的 CAtlRegExp。不過對 POSIX 標準支援很差,而且非常慢。
2. boost,名氣很大,但是過於臃腫,而且速度也不快。
3. 以前微軟研究院有個小組搞過一個greta,號稱速度是boost的7倍多,不過03年以後就再也沒更新了。在 VC8 以上版本編譯需要稍作修改。相容性不錯。
4. VBScript.RegExp。相容性和速度都很好,尤其是速度上出人意料地擊敗了greta,比較複雜的規則比greta快了1倍不止。而且是Windows系統內建,不用像其它庫還需要連結一個幾百KB的lib。
5. TRE:這個是在搜Google的RE2的時候搜到的。因為RE2 暫時還不能在Windows上編譯,所以找來了這個替代品。演算法類似Google的RE2,不過測試下來感覺還不成熟,匹配有遺漏。實測的速度和greta差不多,比VBScript.RegExp慢。
6. PCRE:這個才是王道,WebKit的JavaScriptCore就是用得它,測試下來速度太震撼了,先我對VBScript.RegExp的效能已經很滿意了,結果沒想到PCRE的速度還要快10多倍……唯一的缺點是不支援wchar_t,所以wchar_t字串需要先轉換成char。但是還是夠快了。