首页 > 解决方案 > 从字符串中删除第二个逗号后的所有内容

问题描述

我想删除字符串中第二个逗号之后的任何内容-包括第二个逗号-。这是一个例子:

x <- 'Day,Bobby,Jean,Gav'
gsub("(.*),.*", "\\1", x)

它给出了:

[1] "Day, Bobby, Jean"

虽然我想要:

[1] "Day, Bobby

不管可能存在多少名字x

标签: rregexstring

解决方案


利用

> x <- 'Day, Bobby, Jean, Gav'
> sub("^([^,]*,[^,]*),.*", "\\1", x)
[1] "Day, Bobby"

模式^([^,]*,[^,]*),.*匹配

  • ^- 字符串的开始
  • ([^,]*,[^,]*)- 第 1 组:0+ 个非逗号、一个逗号和 0+ 个非逗号
  • ,.* - 逗号和字符串的其余部分。

替换模式中的将\1在结果中保留第 1 组值。


推荐阅读