我想使用R中的模式表达式来查找匹配的目录中的文件"ReportName*.HTML".这意味着我只想查找具有特定文件名和扩展名的文件,但之间存在动态字符.
这是一个例子:我想找到所有以"2016 Operations"开头但以扩展名".HTML"结尾的报告.目前我正在尝试:
files.control <- dir(path, pattern="^2016 Operations*.HTML$")
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?我喜欢一行代码; 它很简单.
该"ReportName*.HTML"语法被称为圆顶封装,并通过其将返回当前目录的文件名的字符向量开始于以下中的R被支撑ReportName,并与结尾.HTML.
Sys.glob("ReportName*.HTML")
Run Code Online (Sandbox Code Playgroud)
R函数glob2rx会将globs转换为正则表达式,所以这样做会做同样的事情:
dir(pattern = glob2rx("ReportName*.HTML"))
Run Code Online (Sandbox Code Playgroud)
我们可以发现与glob相关的正则表达式,如下所示:
glob2rx("ReportName*.HTML")
## [1] "^ReportName.*\\.HTML$"
Run Code Online (Sandbox Code Playgroud)
您可以通过?regex本页底部附近的链接找到有关R内正则表达式的 更多信息以及更多信息:https://code.google.com/archive/p/gsubfn/