用于查找文件的正则表达式

时间:2016-01-04 16:45:41

标签: regex r

好的,我在阅读了正则表达式的帮助文章之后放弃并提出问题,但仍然不知道我在寻找什么:

我有一个文件列表:

files <-c("files_combined.csv","file_1-10.csv","file_11-20.csv",
      "file_21-30.csv","file_2731-2740.csv","file_2731-2740.txt")

我只想要以&#34;文件_&#34;开头的csv文件并以&#34; .csv&#34;结束。我知道它看起来像这样:

grep(pattern = "^file_???.csv$" ,files)

但我需要找到正确的正则表达式,忽略第一个和第二个模式之间的字符数(&#34; file _&#34; +&#34; .csv&#34;)。如果有人知道R中的正则表达式的完整列表,我真的很感激,因为每次阅读帮助都很繁琐,而且有时我也没有成功...

2 个答案:

答案 0 :(得分:5)

R为那些不喜欢正则表达式的人提供了使用glob模式进行通配符扩展的功能:

files <- Sys.glob("file_*.csv")

这应符合您的模式。

答案 1 :(得分:2)

非常感谢!看起来David Arenburg和Heroka,你同时提出了解决方案。还要感谢MichaelChirico提供的备忘单。

这是我特定问题的答案:

grep("^file_.+\\.csv$",files,ignore.case = T)

至于正则表达式的问题,这也很有用txt2re