下面的代码不起作用,因为无法正确读取\ 10,\ 11等的替换字符串。它将\ 10读作\ 1并打印0代替,你可以帮我修复它吗? 其中一个主题中有一个答案,说我应该使用捕获或命名组,但我真的不明白如何使用它们。
headline <- gsub("regexp with 10 () brackets",
"\\1 ### \\2 ### \\3 ### \\4 ### \\5 ### \\6 ### \\7 ### \\8 ### \\9 ###
\\10### \\11### \\12### \\13### \\14### \\15### \\16",
page[headline.index])
答案 0 :(得分:3)
根据?regexp
,自{R-2.14.0起,regexpr()
和gregexpr()
提供了命名捕获功能。不幸的是, <{1}}可用,或者sub()
。因此,它可能对您有用,但可能需要比您希望的更多的腿部工作。
(有关命名组的一些示例,请参阅gsub()
的示例部分。)
稍后再加上GREG SNOW&#39;答案
Greg Snow提到了使用?regexpr
包执行此操作的可能性。这是一个示例,表明gsubfn
确实可以处理超过9个反向引用:
gsubfn()
答案 1 :(得分:1)
您可以考虑使用gsubfn
包而不是gsubfn
中的gsub
,它会提供更多有关如何创建替代广告的选项。