来自提升库的Regex_replace无法按预期工作

Regex_replace from boost library doesn't work as expected

本文关键字:工作 replace Regex      更新时间:2023-10-16

我正在尝试按照模式删除子字符串。

我正在尝试使用boost库,因为它提供了regex_replace,据我所知,它应该用我给定的新字符串替换regex的每一次出现。

std::string s("m_value[0..3]");
boost::regex rgx("[.*]");
return boost::regex_replace(s, rgx, "");

此代码返回m_value[03],而不是m_value。有什么想法吗?

您忘记了逃离。

需要两个反斜杠才能在字符串中添加反斜杠:

boost::regex rgx("\[.*\]");

或者使用原始字符串文字:

boost::regex rgx(R"([.*])");