我试图找到模式的位置,但在更换时,我无法保留旧的字符串。以下是示例:
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)
答案 0 :(得分:3)
您可以在正则表达式的部分周围放置括号。您可以使用\1
,\2
等来引用这些内容。在这种情况下,我在\\d+
周围添加了括号,替换中的\\1
我添加了与第一组括号:
str_replace_all(old, "\\((\\d+)", replacement = "(stringToReplace\\1")
有关详细信息,请参阅Regular Expressions with The R Language中替换字符串向量中的正则表达式匹配部分