在C ++中使用std :: regex匹配精确的子字符串

时间:2014-07-18 20:57:20

标签: c++ regex string

我正在尝试使用正则表达式匹配精确的子字符串,以便我可以从字符串中删除它。

std::string str = "{abc}slkj skdjv{abc}nei slkjdf";
std::regex reg("{abc}");
str = std::regex_replace(str, reg, "");

我在Regexr上尝试了这个正则表达式并且它有效(它匹配{abc},就像我想要的那样)。但是,上面的代码似乎遇到了无限循环。

我想使用正则表达式的原因是因为我也使用它去除其他不仅仅是字符串匹配的东西,所以我不是在寻找直接的字符串操作,比如here给出的答案

正则表达式字符串实际上应该与该特定字符串匹配?

1 个答案:

答案 0 :(得分:3)

如果您想真正匹配{abc},则需要使用正则表达式\{abc\}{}是正则表达式中的特殊标记,因此必须将它们转义。