如何在保持字符串原样的同时在模式之前附加一个字符串?

How to append a string before pattern while keeping the string as it is?

我试图通过查找模式的位置来做到这一点,但在替换时,我无法保留旧字符串。以下是示例:

old <- "(101==1,2) AND (102==1)"
str_replace_all(old, "\(\d+", replacement = "(stringToReplace")

正在印刷

(stringToReplace==1,2) AND (stringToReplace==1)

但我希望输出为

(stringToReplace101==1,2) AND (stringToReplace102==1)

您可以将正则表达式的某些部分括起来。您可以使用 </code>、<code> 等引用它们。在这种情况下,我在 \d+ 周围添加了方括号,替换为 \1 我添加了与第一组括号:

str_replace_all(old, "\((\d+)", replacement = "(stringToReplace\1")

有关详细信息,请参阅 Regular Expressions with The R Language

中的 替换字符串向量中的正则表达式匹配项 部分