在R函数的list.files中使用正则表达式

时间:2016-06-21 16:30:05

标签: regex r

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

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

我已尝试将un\d放入模式输入中但不起作用。

2 个答案:

答案 0 :(得分:4)

您应该记住,在R中,字符串允许使用转义序列。但是,正则表达式引擎需要文字\来传递速记字符类(如数字\d)或转义特殊字符(如\\.以匹配文字点。)

所以,你需要

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

,其中

  • _un - 匹配文字子字符串_un
  • \\d+ - 匹配1位或更多位数(因为+一个或多个量词)
  • \\. - 匹配文字点
  • txt - 匹配文字字符序列txt
  • $ - 字符串结束。

答案 1 :(得分:0)

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