我想使用R中的模式表达式来查找我的目录中与"ReportName*.HTML"
匹配的文件。这意味着我只想查找具有特定文件名和扩展名的文件,但之间存在动态字符。
以下是一个示例:我想查找所有以" 2016运营"但最后是扩展" .HTML"。目前我正在尝试:
files.control <- dir(path, pattern="^2016 Operations*.HTML$")
为什么这不起作用?我喜欢一行代码;它很简单。
答案 0 :(得分:5)
"ReportName*.HTML"
语法称为glob,在R中通过以下方式支持,它将返回当前目录文件名的字符向量,以ReportName
开头,以.HTML
结尾。 / p>
Sys.glob("ReportName*.HTML")
R函数glob2rx
会将globs转换为正则表达式,所以这也是同样的事情:
dir(pattern = glob2rx("ReportName*.HTML"))
我们可以发现与这样的glob关联的正则表达式:
glob2rx("ReportName*.HTML")
## [1] "^ReportName.*\\.HTML$"
您可以使用?regex
以及本页底部附近链接的更多信息,通过R帮助从R中找到有关正则表达式的更多信息:https://code.google.com/archive/p/gsubfn/