有人可以解釋兩者之間的區別嗎?現在哪個學習會更好?知識如何從一個轉移到另一個,反之亦然?Boost.Regex vs C++ 11 Regex
回答
boost正則表達式庫使它成爲C++ 0x,所以我猜它會慢慢從提升中刪除。但是,使用boost是很好的,因爲您仍然可以在沒有C++ 0x支持的編譯器中使用它。所以這真的取決於你。
是的,但可以遷移一個Boost.Regex爲基礎的程序與C + + 11正則表達式與一個簡單的's/boost ::/std ::/g'? –
@Rob:我想這取決於你是否使用Boost.Regex的ICU支持。 – ildjarn
一個主要區別是,C++ 11不提供正則表達式的Perl語法。因此,如果您傾向於使用Perl語法,則必須使用Boost :: Regex庫。
是的,正則表達式有Perl語法:有ECMAScript正則表達式,ECMAScript正則表達式與Perl正則表達式相同http://ecma-international.org/ecma-262/5.1/#sec-15.10 – BenjaminB
@Ubiquité你是不正確的。您提供的鏈接表示「以後建模」。 [C++ TR1提案
@PatrickNiedzielski:你是對的,不幸的是Boost.Regex將'perl'定義爲等同於'ECMAScript' http://www.boost.org/doc/libs/1_53_0/libs/regex/doc/html/boost_regex/ref/ syntax_option_type/syntax_option_type_perl.html。 – kennytm
至少在Visual Studio 2013中,這兩個名稱空間和相關名稱(cmatch,regex_match)在兩個名稱空間中都是相同的。他們也有相同的(或類似的?)界面。
所以,你可以改變命名空間,相同的代碼將與另一個正則表達式編譯沒有警告和錯誤。當然它的工作原理應該是一樣的。
P.S.我更喜歡std :: regex,因爲它是C++ 11的一部分,boost :: regex是第三方庫。我相信幾年後,boost將取消對boost :: regex的支持。
- 1. Boost.Regex oddity
- 2. 正則表達式在C++ 11 vs PHP
- 3. C++ 11 std :: atomic_fetch_add vs __sync_fetch_and_add
- 4. Boost.Regex鏈接錯誤LUbuntu 14.04 g ++ 4.8.2
- 5. RegEx Whitespace Vs. Eclipse的
- 6. string.match(regex)vs regex.match(string)
- 7. nginx:location tilde regex vs path
- 8. VS VS VS VS 11中的MVC測試
- 9. C++ 11線程vs升級線程
- 10. C++ 11堆棧分配vs Unique_Ptr
- 11. Microsoft office Access`LIKE` VS`RegEx`
- 12. 正則表達式:boost :: xpressive vs boost :: regex
- 13. SegNet - CUBLAS_STATUS_SUCCESS(11 vs. 0)CUBLAS_STATUS_MAPPING_ERROR
- 14. Makefile C++ 11錯誤
- 15. 在C++ 11
- 16. VS 11不注意安裝位置
- 17. 從VS 11 Developer Preview升級到VS 11 Beta的正確步驟是什麼?
- 18. C++編譯C++ 11
- 19. C#中的RegEx組
- 20. 幫助C++ Boost :: regex
- 21. 爲什麼這個C++ 11 std :: regex示例拋出一個regex_error異常?
- 22. 如何使用Boost.Regex獲取正則表達式匹配值?
- 23. 在C++中使用auto foo =「bar」vs std :: string 11
- 24. Segmentation Fault 11,C
- 25. C++ 11「auto」semantics
- 26. C++ 11:一秒
- 27. SublimeLinter with C++ 11
- 28. C++ 11正則表達式,非貪婪
- 29. C++ 11正則表達式匹配
- 30. C++ 11 regex_replace怪異的行爲
學習標準的方法從來就不是一件壞事。 –
小心標準庫C++ 11正則表達式,因爲它仍然沒有完全由GCC實現:http://stackoverflow.com/questions/4716680/c0x-regex-in-gcc –