【问题标题】:Delete everything after second comma from string [duplicate]从字符串中删除第二个逗号后的所有内容[重复]
【发布时间】:2020-02-07 16:23:32
【问题描述】:

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

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

它给出了:

[1] "Day, Bobby, Jean"

当我想要的时候:

[1] "Day, Bobby

不管x中可能存在多少个名字

【问题讨论】:

    标签: r regex string


    【解决方案1】:

    使用

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

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

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

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

    【讨论】:

    • 谢谢你的解释和回答
    【解决方案2】:

    我们也可以使用strsplit 然后paste

    toString(head(strsplit(x, ",")[[1]], 2))
    #[1] "Day, Bobby"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 2016-11-08
      • 2018-04-03
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      相关资源
      最近更新 更多