正则表达式在日期后删除尾巴

Regex to remove a tail after a date

我环顾四周,但我无法使用正则表达式使用 sub() 函数从日期变量中删除“*/tues”。

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

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

等等

我正在尝试这样做:

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

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

如何转义前两个 / 并告诉它只删除第三个以及之后的所有内容?

我们可以使用

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"))

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

library("stringr")

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