这是我有一个字符串
"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
有人能指出我正确的方向吗?
答案 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"