1
我想在C++ 11(Visual Studio中2013)使用std::regex_replace
,但我想創建正則表達式時拋出異常:爲什麼這個正則表達式會拋出異常?
Microsoft C++ exception: std::regex_error at memory location 0x0030ED34
爲什麼會出現這種情況?這是我的定義:
std::string regexStr = R"(\([A - Za - z] | [0 - 9])[0 - 9]{2})";
std::regex rg(regexStr); <-- This is where the exception thrown
line = std::regex_replace(line, rg, this->protyp->getUTF8Character("$&"));
我想要做什麼:找哪家有以下幾種格式的字符串中的所有匹配:
「\ X99」或「\ 999」 其中X = AZ或az和9 = 0-9。
我也嘗試過使用boost正則表達式庫,但它也拋出了一個懷疑。
(另一個問題:我可以用我在最後一行是做反向引用我想根據比賽動態更換)
感謝所有幫助
爲什麼你周圍的空間'-'在字符類的 價值? – Barmar
您的正則表達式的問題是括號不平衡。其中一個開括號會被轉義,因此與右括號不匹配。 – Barmar
@puelo'\\ [A-Za-z \ d] \ d {2} \ b' –