在R的正则表达式中是否有等效的"&"用于反向整个匹配

cra*_*lly 6 regex backreference r capture-group

当我使用vim时,我经常使用&反向替换整个匹配.例如,以下内容将"foo"的所有实例替换为"foobar":

%s/foo/&bar/g
Run Code Online (Sandbox Code Playgroud)

这里的好处是懒惰:我不必在匹配中键入括号,我只需要为替换中的反向引用键入一个字符而不是两个字符.也许更重要的是,在我输入比赛时,我没有弄清楚我的背叛,减少了认知负担.

是否有一个等同于&我在R的正则表达式中使用vim(可能使用perl = T参数)?

Wik*_*żew 7

基本R/函数的答案是NO,请参阅此参考:subgsub

整体匹配没有替换文本标记.将整个正则表达式放在捕获组中,然后使用\1插入整个正则表达式匹配.

但是,stringr你可以使用\0:

> library(stringr)
> str_replace_all("123 456", "\\d+", "START-\\0-END")
[1] "START-123-END START-456-END"
Run Code Online (Sandbox Code Playgroud)