用 Google 可以找到這篇:
Regular Expression Performance Comparison
http://cvs.sourceforge.net/viewcvs.py/*checkout*/boost/boost/libs/regex/doc/gcc-performance.html
用 POSIX RE(Regular Expression) 看來是吃力不討好,既不跨平台,速度又慢。
Boost RE 不管在設計、效率,以及跨平台等方面,都無懈可擊。但卻有著唯一的原罪:用 C++ 寫的,不管是其實作,或其使用,都是 C++,在某些情況之下,這是無法被接受的。
我現在日常工作在用的是 PCRE,和 perl 相同的語法,讓我很容易地就可以從 perl 轉移程式回 C/C++,或使用 perl 作 prototyping。但 PCRE 還是有兩個缺點:第一就是沒有 replace,得自己另外包;第二,不支援 wchar_t,若要 i18n safe 的話,得先轉成 utf8 並設 flag,若 locale 用的不是 utf8 的話,就會多了一層轉換的 overhead,若沒有使用 iconv 這類直接轉換 encoding 的工具,而單靠 C/C++ locale 的話,則會有 multi-thread 的 bottle neck,因為 C locale 在設計上就不是 thread-safe,而 C++ locale,唉,我到現在還搞不懂到底有沒有正確的實作品。
ps. 其實 Boost RE 也可以吃 Perl RE 語法啦。