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

标签 r regex backreference capture-group

我用vim的时候经常用&在替换中反向引用整个匹配项。例如,以下将所有“foo”的实例替换为“foobar”:

%s/foo/&bar/g

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

是否有等效于 &我在 vim 中使用 R 的正则表达式(也许使用 perl = T 参数)?

最佳答案

在基础 R sub/gsub 函数 中:答案是否定的,请参阅 this reference :

There is no replacement text token for the overall match. Place the entire regex in a capturing group and then use \1 to insert the whole regex match.



stringr 包中: 是的,您可以使用 \0 :
> library(stringr)
> str_replace_all("123 456", "\\d+", "START-\\0-END")
[1] "START-123-END START-456-END"

关于r - 在 R 的正则表达式中是否有等效的 "&"用于反向引用整个匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38706077/

相关文章:

r - 在不写入磁盘的情况下将 R 数据帧转换为 H2O 帧

r - 拆分后的数据框列名称

python - 如何在 Python 中使用正则表达式删除带有特殊字符串的字符?

javascript - 使正则表达式成为可重用的函数

javascript - 正则表达式查找字符串中的图像链接

java - JAVA中使用反向引用的递归组捕获正则表达式

r - 结合低频计数

R: 在 glm() 和 bestglm() 中找不到函数 "function (object, ...)\nobject"

regex - ColdFusion - 将正则表达式反向引用传递给函数调用

php - 使用 preg_replace 命名反向引用