如何将gsub与超过9个反向引用一起使用?
我希望下面的示例中的输出为“ e,g,i,j,o”。
> test <- "abcdefghijklmnop"
> gsub("(\\w)(\\w)(\\w)(\\w)(\\w)(\\w)(\\w)(\\w)(\\w)(\\w)(\\w)(\\w)(\\w)(\\w)(\\w)(\\w)", "\\5, \\7, \\9, \\10, \\15", test, perl = TRUE)
[1] "e, g, i, a0, a5"
最佳答案
参见Regular Expressions with The R Language:
您可以在替换文本中使用后向引用\1
至\9
来重新插入与capturing group匹配的文本。整体匹配没有替代文本标记。将整个正则表达式放在捕获组中,然后使用\1
。
但是使用PCRE,您应该可以使用named groups。因此,尝试使用(?P<
name
>
regex
)
进行分组命名,并使用(?P=
name
)
作为后向引用。