我正在尝试列出不以特定字符串开头的文件夹中的文件。我尝试使用下面的正则表达式,但没有成功。我想列出不以“SH”开头的文件。这给了我一个语法错误:
myFiles = list.files(pattern = "^((?!SH).)*\\.csv")
答案 0 :(得分:2)
您可以尝试grep
:
grep("^((?!SH).)*\\.csv", list.files(), perl=T, value=T)
答案 1 :(得分:1)
虽然list.files
允许使用正则表达式进行匹配,但grep
或gsub
或gregexp
不具有help('regex')
的完全灵活性,如perl
所述1}},特别是它没有.csv
参数与模式一起传递。
但是,以下应该可以解决问题(假设您希望所有文件不是以SH开头,而是以list.files(pattern = '^[^SH].+\\.csv$')
结尾。
UIViewAnimationOptionTransitionCrossDissolve
答案 2 :(得分:1)
您可以使用以下正则表达式解决perl=T
中缺少list.files()
支持的问题:
^(.|[^S].*|.[^H].*)\\.csv
这是a demo of how this regex work
此正则表达式允许任何单字符文件名,或开头没有SH
的双字符文件名和任何其他文件名。
所以,使用
myFiles = list.files(pattern = "^(.|[^S].*|.[^H].*)\\.csv")
答案 3 :(得分:0)
此功能列出所有文件不以“SH”开头,以“.csv”结尾
list.files()[!grepl("^SH.*\\.csv$",list.files())]
或者如果您想忽略案例,请使用ignore.case=T
:
list.files()[!grepl("^SH.*\\.csv$",list.files(),ignore.case=T)]