對於以ing
或ed
或en
結尾的單詞,此Perl正則表達式的Boost :: Regex等效項是什麼?如何將Perl正則表達式轉換爲與Boost :: Regex一起使用?
/ing$|ed$|en$/
...
對於以ing
或ed
或en
結尾的單詞,此Perl正則表達式的Boost :: Regex等效項是什麼?如何將Perl正則表達式轉換爲與Boost :: Regex一起使用?
/ing$|ed$|en$/
...
/^[\.:\,()\'\`-]/
應該變成
"^[.:,()'`-]"
在C++中不存在特殊的Perl正則表達式分隔符/
,所以正則表達式只是一個字符串。在這些字符串中,您需要注意正確地排除反斜槓(\\
,在原始正則表達式中每\
)。但在你的例子中,所有反斜槓都是不必要的,所以我完全放棄了它們。
還有其他一些注意事項;據我所知,一些Perl功能(如可變長度lookbehind)在Boost庫中不存在。所以它可能無法簡單地翻譯任何正則表達式。不過,你的例子應該沒問題。儘管其中有些很奇怪。 .*[0-9].*
將匹配任何包含某個數字的字符串,而不是all numbers
。
最重要的區別是,在C++正則表達式都是字符串,因此,所有的正則表達式特殊反斜槓序列(如\w
和\d
應該用雙引號("\\w"
和"\\d"
)
這個perl表達式怎麼樣:'/ O $ /' $ in perl表達式的結尾是什麼意思? 另一個問題是:當我在boost中編寫例如表達式「^ B_」時,意味着什麼? – Yadollah 2010-04-30 17:09:47
在Perl中不需要內部字符類('[...]')。 – mob 2010-03-29 14:48:24
對。他們沒有必要開始。在某些情況下,不必要的反斜槓甚至可能成爲語法錯誤(例如'\ <')。 – 2010-03-29 14:55:51