【问题标题】:R remove string after second underscoreR 在第二个下划线后删除字符串
【发布时间】:2021-02-15 08:18:38
【问题描述】:

这是一个非常基本的问题,但我找不到明确的答案...如何删除第二个下划线后的所有内容。谢谢!

Please_remove_this_part

想要的输出:

Please_remove

【问题讨论】:

    标签: r string substring


    【解决方案1】:

    我会将问题描述为提取第二个下划线之前的所有内容:

    x = "Please_remove_this_part"
    stringr::str_extract(x, "[^_]*_[^_]*")
    # [1] "Please_remove"
    

    说明:[^_] 匹配除下划线以外的任何内容,因此 [^_]*_[^_]* 匹配任何非下划线、一个下划线,然后是非下划线的任何内容。

    【讨论】:

      【解决方案2】:
      x <- "Please_remove_this_part"
      sub("([A-Za-z]+_[A-Za-z]+).*", "\\1", x)
      [1] "Please_remove"
      

      sub 解决方案将第二个下划线之前的所有内容定义为捕获组,并通过替换参数中的反向引用\\1 调用它。

      【讨论】:

        猜你喜欢
        • 2019-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多