【问题标题】: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)