我正在使用boost庫來解析文件。它知道當你使用圓括號時,它表示正則表達式中的子表達式。如果我的文件包含括號,我將如何聲明一個正則表達式?我嘗試使用\(
沒有運氣。任何人都可以告訴我,我應該如何爲以下格式的文件聲明一個正則表達式?如何使用正則表達式匹配括號?
a:(1)
b:(2)
我能夠做分析時,文件內容是
a:1
b:2
通過聲明正則表達式爲boost::regex e("([a-z]):([0-9])");
你能告訴我怎麼也可以匹配,如果值在大括號?
我正在使用boost庫來解析文件。它知道當你使用圓括號時,它表示正則表達式中的子表達式。如果我的文件包含括號,我將如何聲明一個正則表達式?我嘗試使用\(
沒有運氣。任何人都可以告訴我,我應該如何爲以下格式的文件聲明一個正則表達式?如何使用正則表達式匹配括號?
a:(1)
b:(2)
我能夠做分析時,文件內容是
a:1
b:2
通過聲明正則表達式爲boost::regex e("([a-z]):([0-9])");
你能告訴我怎麼也可以匹配,如果值在大括號?
如果你想使用圓括號,你需要用反斜槓來轉義它們。問題是你也需要轉義該反斜槓(對於C++編譯器)。例如:
std::string regexstring = "\\([a-z]\\):\\([0-9]\\)";
非常感謝這個問題來到了,當我從C#正則表達式模式轉移到C++,我不知道該編譯器對待他們不同。對於搜索的人來說,這會修復警告'C4129:'(':無法識別的字符轉義序列'。 – 2015-08-18 23:20:55
我試圖\\(但沒有運氣.. – Ambi 2011-03-23 10:18:11