【问题标题】:Remove (or replace) everything after a specified character in R strings [duplicate]删除(或替换)R字符串中指定字符之后的所有内容[重复]
【发布时间】:2018-09-23 23:17:00
【问题描述】:

我有一列字符串,我想删除最后一个“。”之后的所有内容

我试过了:

sub('\\..*', '', x)

但我的问题是,对于某些刺痛,有 x2 '.'并且对于某些只有 x1 '。 例如

ENST00000338167.9
ABCDE.42927.6

如何只删除最后一个 '.' 之后的字符?? 这样我就剩下了:

ENST00000338167
ABCDE.42927

非常感谢!!

【问题讨论】:

    标签: r regex


    【解决方案1】:

    我们可以使用sub 匹配.(因为它是任何字符的元字符而被转义)后跟0 个或多个不是. 的字符([^.]*)直到最后(@987654325 @) 并将其替换为空白 ("")

    sub("\\.[^.]*$", "", x)
    #[1] "ENST00000338167" "ABCDE.42927"    
    

    或使用str_remove 来自stringr

    library(stringr)
    str_remove(x, "\\.[^.]*$")
    #[1] "ENST00000338167" "ABCDE.42927"  
    

    数据

    x <- c("ENST00000338167.9", "ABCDE.42927")  
    

    【讨论】:

      【解决方案2】:

      另一种方法是“捕获”之前的部分。

      sub("(.*)\\..*", "\\1", x)
      

      【讨论】:

        猜你喜欢
        • 2019-02-11
        • 2012-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-20
        • 2021-02-28
        • 1970-01-01
        • 2019-08-19
        相关资源
        最近更新 更多