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

时间:2016-04-14 09:42:26

标签: r gsub stringr

我试图找到模式的位置,但在更换时,我无法保留旧的字符串。以下是示例:

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)

1 个答案:

答案 0 :(得分:3)

您可以在正则表达式的部分周围放置括号。您可以使用\1\2等来引用这些内容。在这种情况下,我在\\d+周围添加了括号,替换中的\\1我添加了与第一组括号:

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

有关详细信息,请参阅Regular Expressions with The R Language替换字符串向量中的正则表达式匹配部分