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' –