我有以下字符串:
time <- "2017-05-30T09:20:00-08:00"
我是用gsub
来制作这个:
"2017-05-30 09:20:00"
这是我到目前为止所做的:
time2 <- gsub("T", " ", time)
gsub("\\-.*", "", time2)
两个问题 -
-
的 last 实例后的所有字符?答案 0 :(得分:2)
使用带有拼写正则表达式的sub
一次调用捕获您感兴趣的部分,然后匹配其他所有内容。然后,在替换模式中使用替换后向引用 \1
和\2
来重新插入这两个捕获的子部分:
^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2}).*
请参阅regex demo。
<强>详情:
^
- 字符串的开头(\d{4}-\d{2}-\d{2})
- 第1组:4位数,-
,2位数,-
,然后是2位数T
- T
来信(\d{2}:\d{2}:\d{2})
- 第2组:2位数,:
,2位数,:
和2位.*
- 字符串结尾的任何0+字符。 time_s <- "2017-05-30T09:20:00-08:00"
sub("^(\\d{4}-\\d{2}-\\d{2})T(\\d{2}:\\d{2}:\\d{2}).*", "\\1 \\2", time_s)
## => [1] "2017-05-30 09:20:00"
答案 1 :(得分:0)
使用转换为DateTime
library(anytime)
format(anytime(time), "%Y-%m-%d %H:%M:%S")
#[1] "2017-05-30 09:20:00"