【问题标题】:Regex to remove a tail after a date正则表达式在日期后删除尾巴
【发布时间】:2018-11-05 19:08:34
【问题描述】:

我环顾四周,但在使用正则表达式使用 sub() 函数从日期变量中删除“*/tues”时遇到了麻烦。

a$date 中的所有变量如下所示:

01/01/2017/Sun
01/03/2017/Tues

等等。

我正在尝试这样做:

sub(a$date,"*7/\\*","")

我确定我只是弄乱了正则表达式。

如何逃避前两个 / 并告诉它只删除第三个和之后的所有内容?

【问题讨论】:

    标签: r regex date substitution


    【解决方案1】:

    我们可以使用

    sub("\\/[^0-9]+$","", a$date)
    #[1] "01/01/2017" "01/03/2017"
    

    substr

    substr(a$date, 1, 10)
    #[1] "01/01/2017" "01/03/2017"
    

    数据

    a <- data.frame(date = c("01/01/2017/Sun", "01/03/2017/Tues"))
    

    【讨论】:

    • 非常感谢!这正是我想要的。
    【解决方案2】:

    另一种解决方案是简单地截断你的字符串:

    library("stringr")
    
    # truncate date after 10 characters
    a$date <- str_trunc(a$date,10) 
    

    【讨论】:

    • 谢谢!这太棒了。也是一个有效的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    相关资源
    最近更新 更多