R中的list.files模式参数,扩展正则表达式的使用

Yod*_*oda 2 regex r

我跑

  dir.create('./junk_data')
  file.create(paste('./junk_data/QWE',01:12,01:31,2005:2015,'.3',sep=''))
  file.create(paste('./junk_data/RTY',01:12,01:31,2005:2015,'.3',sep=''))
Run Code Online (Sandbox Code Playgroud)

并要列出所有文件开始QWE结尾2011.3.我试过了

list.files('./junk_data/',pattern='QWE....2011.3',full.names=T)
Run Code Online (Sandbox Code Playgroud)

list.files('./junk_data/',pattern='QWE....2011.3',full.names=T,perl=T)
Run Code Online (Sandbox Code Playgroud)

但我想'.'这并不代表我的想法,因为我没有得到任何我想要的文件.

我尝试了一些关于正则表达式的教程,但没有快乐.

Ric*_*ton 11

正如Arun在他的例子中所示,一个点通常意味着"匹配任何角色",所以要匹配一个你需要逃脱的点:\\..您可以使用最简单的方式创建模式glob2rx,该模式*用作通配符并匹配其他字符,就像它们已修复一样.

glob2rx("QWE*2011.3")   #"^QWE.*2011\\.3$"
list.files("./junk_data/", pattern = glob2rx("QWE*2011.3"), full.names = TRUE)
Run Code Online (Sandbox Code Playgroud)