c ++正则表达式错误(未处理的异常)

时间:2015-05-01 16:54:04

标签: c++ regex

我想在字符串ss中选择)9, 用* 9

替换它

我在第2行(ee的def)得到一个未处理的表达式错误。 我已经尝试了我能想到的第2行的所有组合(包括双重转义d)。

std::string ss ("1 + (3+2)9 - 2 ");
std::regex ee ("(\\)\d)([^ ]");

std::string result;
std::regex_replace (std::back_inserter(result), ss.begin(), ss.end(), ee, "*$2");
std::cout << result;

1 个答案:

答案 0 :(得分:2)

你需要逃避所有的反斜杠:

"(\\)\\d)([^ ]"

否则你可能会向正则表达式发送一个控制字符,而不是两个字符\d

另外,你需要第二个(的正则表达式反斜杠:

"(\\)\\d)\\([^ ]"

或者您需要添加匹配的近括号:

"(\\)\\d)([^ ])"