我正在尝试更多地了解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"
答案 0 :(得分:4)
这似乎只是一个小的换位问题,在这种情况下,误导b
为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"
答案 1 :(得分:0)
也许
gsub("(.*)t.+?l(.*)", "\\1HERE\\2", d)
gsub("(.*)_.+?\\;(.*)", "\\1HERE\\2", d)
但问题有点不清楚