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

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

并且想要列出所有以 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/

相关文章:

r - ggplot 中按比例大小的箭头

javascript - 正则表达式错误 : Match is not a function

javascript - 如何在javascript中使用正则表达式捕获以某种字符串开头和结尾的字符串

javascript - Js 中十进制格式的正则表达式(123,456.789 和 123.456,789)

r - 为什么在 R 中更改 stringsAsFactors 会更改文件大小?

r - 使用一个 x 变量将 Y 值降低到所需值

R:当每行末尾未分隔时读取分隔表

Python正则表达式替换不应该匹配的字符串

java - 如何查找 Zip 文件目录中的任何文件

r - 在 R sf 的分组列上创建新几何