我正在使用boost :: regex_replace(replacement_text,regex,new_text)函数来执行此操作...
replacement_text = "{replace_me}"
regex = "(\{([^\}]*[^\s]*)\})"
new_text = "$$$"
对于每个不包含“$”的new_text,这样做效果很好,new_text将完全替换replacement_text。但是当使用符号“$$$”时,它会将其截断为“$$”,取消1 $。
我读到规格中的美元符号($)用于特殊格式:
$ n
第n个反向引用(即,在正则表达式模式中用括号指定的第n个匹配组的副本)。 n必须是一个整数值,指定一个有效的反向引用,大于1,最多两个数字。
那么如何禁用它以使其不进行特殊格式化?提前谢谢!
答案 0 :(得分:1)
正如您在问题中提到的,$
是格式化程序参数regex_replace
中的转义序列,因此与PCRE中的任何其他特殊字符(Perl兼容的正则表达式)一样,您可以使用{{1}来转义它}}!所以使用\
,因为你使用的是C ++,你应该使用\$\$\$
(当然你已经知道了)