一开始,是的 - 这里存在类似的问题,但是解决方案无法正常工作 - 至少对我来说是这样。
我想删除第一个分号之前的所有字符、字母和数字,并删除它。
所以我们有一些字符串:
x <- "1;ABC;GEF2"
y <- "X;EER;3DR"
让我们gsub()
使用 .
和 *
来执行此操作,这意味着出现次数为 0 或更大的任何符号:
gsub(".*;", "", x)
gsub(".*;", "", y)
结果我得到:
[1] "GEF2"
[1] "3DR"
但我希望有:
[1] "ABC;GEF2"
[1] "EER;3DR"
为什么它"捕获"了分号的第二次出现而不是第一次?
您可以使用
gsub("[^;]*;(.*)", "\1", x)
# [1] "ABC;GEF2"