R 如何使用2020.04.12.10.30.10格式从还包含时间的文件路径字符串中提取日期?

R 如何使用2020.04.12.10.30.10格式从还包含时间的文件路径字符串中提取日期?,r,regex,R,Regex,我有一个文件路径字符串,如下所示: \\\\server\file\path\string\10X_blah.2020.04.12.10.30.10.xls 我只需要提取2020.04.12 我尝试过(?这不是一个很好的解决方案,因为它需要在子字符串之前定位长度。向前看可能更理想。不过,我们可以: my_string<- readClipboard() # copy the file path substring(stringr::str_remove_all(my_string,"\

我有一个文件路径字符串,如下所示:

\\\\server\file\path\string\10X_blah.2020.04.12.10.30.10.xls
我只需要提取2020.04.12


我尝试过
(?这不是一个很好的解决方案,因为它需要在
子字符串
之前定位长度。向前看可能更理想。不过,我们可以:

my_string<- readClipboard() # copy the file path

substring(stringr::str_remove_all(my_string,"\\D.*(?=\\d{4,})"),
          1,10)
[1] "2020.04.12"

您需要做的就是:

\\d{4}\\.\\d{2}\\.\\d{2}
在R中:

说明:

  • \\d{4}\.
    四位数年份后跟一个点
  • \\d{2}\.
    两位数的月份后跟一个点
  • \\d{2}
    两位数日

  • 也许匹配
    \d{4}\.\d{2}\.\d{2}
    就足够了,没有lookback.Edited,因为R使用双斜杠来转义,而不是一个反斜杠。
    \\d{4}\\.\\d{2}\\.\\d{2}
    
    stringr::str_extract_all(my_string,"\\d{4}\\.\\d{2}\\.\\d{2}")
    [[1]]
    [1] "2020.04.12"