C++ 如何停止C+中boost::regex#u replace的格式($)+;?

C++ 如何停止C+中boost::regex#u replace的格式($)+;?,c++,boost,replace,boost-regex,C++,Boost,Replace,Boost Regex,我正在使用boost::regex\u replace(replacement\u text,regex,new\u text)函数来完成这个任务 replacement_text = "{replace_me}" regex = "(\{([^\}]*[^\s]*)\})" new_text = "$$$" 对于每一个不包含“$”的新的\u文本,这非常有效,新的\u文本将完全取代替换的\u文本。但是当使用符号“$$$”时,它会将其截断为“$$”,去掉1$ 我了解到规范中的美元符号($)用

我正在使用boost::regex\u replace(replacement\u text,regex,new\u text)函数来完成这个任务

replacement_text = "{replace_me}"

regex = "(\{([^\}]*[^\s]*)\})"

new_text = "$$$"
对于每一个不包含“$”的新的\u文本,这非常有效,新的\u文本将完全取代替换的\u文本。但是当使用符号“$$$”时,它会将其截断为“$$”,去掉1$

我了解到规范中的美元符号($)用于特殊格式:

$n

第n个反向引用(即,在正则表达式模式中用括号指定的第n个匹配组的副本)。 n必须是指定有效反向引用的整数值,大于1,最多两位数


那么,我如何才能禁用它,使它不做特殊的格式化?提前谢谢

正如您在问题中提到的,
$
regex\u replace
的格式化程序参数中的转义序列,因此与PCRE(Perl兼容的regex)中的任何其他特殊字符一样,您可以使用
\
对其进行转义!所以使用<代码> \$\$\$/COD>,因为您使用的是C++,应该使用<代码> \\$\\$\$//>(当然您已经知道)

我不太了解Boost,但通常,正则表达式语言允许您用反斜杠来逃逸——即<代码> NexTyth= = \ \ $\$\“/CODE >实际上,因为它是C字符串,我想反斜杠需要转义-所以可能
new\u text=“\\$\\\$\\\$”