R Wildcard在表达式中间

时间:2016-03-25 19:07:16

标签: regex r

我想使用R中的模式表达式来查找我的目录中与"ReportName*.HTML"匹配的文件。这意味着我只想查找具有特定文件名和扩展名的文件,但之间存在动态字符。

以下是一个示例:我想查找所有以" 2016运营"但最后是扩展" .HTML"。目前我正在尝试:

files.control <- dir(path, pattern="^2016 Operations*.HTML$")

为什么这不起作用?我喜欢一行代码;它很简单。

1 个答案:

答案 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/