我跑
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=''))
并且想要列出所有以
QWE
开头的文件并以 2011.3
结尾.我试过list.files('./junk_data/',pattern='QWE....2011.3',full.names=T)
和
list.files('./junk_data/',pattern='QWE....2011.3',full.names=T,perl=T)
但我猜
'.'
并不意味着我的想法,因为我没有得到我想要的文件。我尝试了一些关于正则表达式的教程,但没有任何乐趣。
最佳答案
正如 Arun 在他的例子中所展示的,一个点通常意味着“匹配任何字符”,所以要匹配一个点,你需要对它进行转义:\\.
.您可以使用 glob2rx
最轻松地创建图案。 , 使用 *
作为通配符并匹配其他字符,就好像它们是固定的一样。
glob2rx("QWE*2011.3") #"^QWE.*2011\\.3$"
list.files("./junk_data/", pattern = glob2rx("QWE*2011.3"), full.names = TRUE)
关于regex - R 中的 list.files 模式参数,扩展正则表达式使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14360174/