1

我想列出一个目录中以“xyz”开头的所有文件,第一个下划线后面有一个 2。

例如,xyzfjd_2_34_1.png,xyz-39_2dog.jpg会起作用,而xyzdog_3_dog.png不会起作用。

我试过了

list.files(dir, pattern="^xyz*_2*");

这显然是错误的,主要是因为我什至不知道我在做什么......

4

1 回答 1

3

没有下划线的文件名匹配吗?我假设没有。

我认为您正在*为任何角色进行解释。相反,.是任何字符。*是“0次或多次”。所以你的模式^xyz*_2*可以匹配xy_xyzzzz_222。它不会匹配xyz1_2

尝试:

list.files(dir, pattern = "^xyz[^_]*_2")
  • ^文件名的开头
  • xyz
  • [^_]*任何非字符的组合_(包括空字符串)
  • _2, 下划线后跟一个 2。

我不担心名称的其余部分,因为模式只需要匹配文件名的一部分。

于 2013-11-01T00:50:04.660 回答