r语言 - 删除特定符号(包括它)之前的字符串中的字符



一开始,是的 - 这里存在类似的问题,但是解决方案无法正常工作 - 至少对我来说是这样。

我想删除第一个分号之前的所有字符、字母和数字,并删除它。

所以我们有一些字符串:

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"

最新更新