从R中的给定字符串中提取日期

时间:2017-10-02 15:41:16

标签: r datetime gsub

这是我有一个字符串

"7MA_S_VE_MS_FB_MEASURE_P1_2013-08-21_17-42-19.BMP"

我试图以这种方式提取日期:

library(stringr)
as.Date(str_extract(test,"[0-9]{4}/[0-9]{2}/[0-9]{2}"),"%Y-%m-%d")

我为此获得 NA

所需的输出

2013-08-21

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:2)

您已使用正则表达式中的斜杠dBPersister.persist(id);替换短划线-

/

但您也可以将as.Date(str_extract(string, "[0-9]{4}-[0-9]{2}-[0-9]{2}"), format="%Y-%m-%d") # [1] "2013-08-21" 位替换为[0-9],代表相同的内容。我不确定为什么,但正则表达式专业人员似乎总是使用\d版本(注意你必须用另一个反斜杠来逃避反斜杠):

\d

答案 1 :(得分:1)

如果它是固定位置

as.Date(strsplit(str1, "_")[[1]][8])
#[1] "2013-08-21"