5

我跑

  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=''))

并想列出所有以 .开头结尾的文件。我试过QWE2011.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)

但我想'.'这并不意味着我的想法,因为我没有得到我想要的文件。

我尝试了一些关于正则表达式的教程,但没有任何乐趣。

4

1 回答 1

16

正如 Arun 在他的示例中所示,点通常表示“匹配任何字符”,因此要匹配点,您需要对其进行转义:\\.. 您可以使用 最轻松地创建模式glob2rx,它*用作通配符并匹配其他字符,就好像它们是固定的一样。

glob2rx("QWE*2011.3")   #"^QWE.*2011\\.3$"
list.files("./junk_data/", pattern = glob2rx("QWE*2011.3"), full.names = TRUE)
于 2013-01-16T14:21:42.887 回答