2016-06-21 190 views
1

我想使用R的list.files列出包含此模式“un [a digit]”的文件,例如filename_un1.txt,filename_un2.txt等等......这里是一般代码:在R函数的list.files中使用正则表达式

list_files <- list.files(path="my_file_path", recursive = TRUE, pattern = "here I need help", full.names = TRUE) 

我试图把un\d模式输入,但不起作用。

+1

尝试'pattern =“_un \\ d + \\。txt $”' –

+0

详细说明,您需要转义反斜杠。 – Peyton

+1

或根据http://regexone.com/,简单地''un \\ d +' – Gopala

回答

1
list_files <- list.files(path="my_file_path", recursive = TRUE, pattern = "un[0-9]", full.names = TRUE) 
2

您应该记住,在R中,字符串允许使用转义序列。然而,正则表达式引擎需要一个文字\通过速记字符类(数字像\d)或转义特殊字符(如\\.匹配一个字面点。)

所以,你需要

pattern = "_un\\d+\\.txt$" 

其中

  • _un - 字面匹配子_un
  • \\d+ - 匹配1个或多个位(如+一个或多个量词
  • \\. - 字面点
  • txt匹配 - 串的端部 - 的字符txt
  • $的字面序列相匹配。