我需要替换匹配正则表达式的字符串中的每个子字符串,如下所示:
std::string result = boost::regex_replace("my# random *#string ##"
, boost::regex("#([^#*]*[*][^#*]*)#")
, tr);
std::string tr(const boost::smatch &m)
{
std::string replaceString;
bool ret = CheckIfWeNeedToReplace(m[0], replaceString);
if (ret)
return replaceString; // replacing
else
return m[0]; // remain the same
}
e.g。对于字符串"my# random *#string ##"
,有一个匹配正则表达式"#([^#*]*[*][^#*]*)#"
,即" random *"
,如果CheckIfWeNeedToReplace
返回false,则字符串保持不变,如果不是 - 它将是像这样"my#NEW SUBSTRING#string ##"
我的代码不起作用,我做错了什么?