2016-06-21 188 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
  • $的字面序列相匹配。