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

で始まり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)

しかし、私が'.'望むファイルがどれも得られないので、私が思うことを意味するものではないと思います。

正規表現に関するチュートリアルをいくつか試しましたが、喜びはありませんでした。

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 に答える