【发布时间】:2020-02-07 16:23:32
【问题描述】:
我想删除字符串中第二个逗号之后的任何内容 - 包括第二个逗号-。这是一个例子:
x <- 'Day,Bobby,Jean,Gav'
gsub("(.*),.*", "\\1", x)
它给出了:
[1] "Day, Bobby, Jean"
当我想要的时候:
[1] "Day, Bobby
不管x中可能存在多少个名字
【问题讨论】:
我想删除字符串中第二个逗号之后的任何内容 - 包括第二个逗号-。这是一个例子:
x <- 'Day,Bobby,Jean,Gav'
gsub("(.*),.*", "\\1", x)
它给出了:
[1] "Day, Bobby, Jean"
当我想要的时候:
[1] "Day, Bobby
不管x中可能存在多少个名字
【问题讨论】:
使用
> x <- 'Day, Bobby, Jean, Gav'
> sub("^([^,]*,[^,]*),.*", "\\1", x)
[1] "Day, Bobby"
^([^,]*,[^,]*),.* 模式匹配
^ - 字符串开头([^,]*,[^,]*) - 第 1 组:0+ 个非逗号、一个逗号和 0+ 个非逗号,.* - 逗号和字符串的其余部分。替换模式中的 \1 将在结果中保留第 1 组的值。
【讨论】:
我们也可以使用strsplit 然后paste
toString(head(strsplit(x, ",")[[1]], 2))
#[1] "Day, Bobby"
【讨论】: