2

我正在尝试更多地了解 R 中的正则表达式(通过一些教程工作)并且遇到了一些我无法工作的东西。我正在尝试获取 2 个字符(包括这些字符并替换它们)之间的内容。有人可以帮助我从这些正则表达式中获得所需的行为吗?

d <- c("xtfo_oin5h;lx", "6b_arin;7", "xin;7")
gsub("t.+?l", "HERE", b)
gsub("_.+?\\;", "HERE", b)

Desired outcomes for these two statements:
[1] "xHEREx"    "6b_arin;7" "xin;7"
[1] "xtfoHERElx" "6bHERE7"     "xin;7"
4

2 回答 2

4

似乎这只是换位的一个小问题,在这种情况下,将 a 误认为ba d。;-)

gsub("t.+?l", "HERE", d)
gsub("_.+?\\;", "HERE", d)

按预期工作!

> gsub("t.+?l", "HERE", d)
[1] "xHEREx"    "6b_arin;7" "xin;7"    
> gsub("_.+?\\;", "HERE", d)
[1] "xtfoHERElx" "6bHERE7"    "xin;7" 
于 2012-08-02T13:01:14.063 回答
0

也许

gsub("(.*)t.+?l(.*)", "\\1HERE\\2", d)

gsub("(.*)_.+?\\;(.*)", "\\1HERE\\2", d)

但问题有点不清楚

于 2012-08-02T12:55:06.183 回答