fork download
  1. library(stringr)
  2. rx <- "(\\d{4})(\\d{2})(\\d{2})_(\\d{2})(\\d{2})(\\d{2})(?:_(\\d+))?"
  3. Filenames = c("blabla_bli_20140524_002532_000.wav", "20201025_231205.wav", "ble_20190612_220013_012.wav", "X-20150312_190225_Blablu.wav", "0000125.wav")
  4. m <- str_match(Filenames, rx)
  5. result <- ifelse(is.na(m[,8]),
  6. str_c(m[,2], "-", m[,3], "-", m[,4], " ", m[,5], ":", m[,6], ":", m[,7], ".000"),
  7. str_c(m[,2], "-", m[,3], "-", m[,4], " ", m[,5], ":", m[,6], ":", m[,7], ".", m[,8]))
  8. result
Success #stdin #stdout 0.29s 42796KB
stdin
Standard input is empty
stdout
[1] "2014-05-24 00:25:32.000" "2020-10-25 23:12:05.000"
[3] "2019-06-12 22:00:13.012" "2015-03-12 19:02:25.000"
[5] NA