为什么'*'在我的.Rbuildignore文件中不能作为perl regexp工作?

Dav*_*uer 4 perl r

当我尝试在我的.Rbuildignore文件中构建包含以下内容的包时,

*pdf                                                                            
*Rdata  
Run Code Online (Sandbox Code Playgroud)

我得到错误:

readLines(ignore_file)中的警告:在'/home/user/project/.Rbuildignore'上找到不完整的最后一行

无效的正则表达式'*pdf'

我以为'*'是一个或多个角色的通配符?

Dir*_*tel 9

请参阅help(regex)有关正则表达式的帮助,尤其是 Perl变种,并尝试

 .*pdf
 .*Rdata
Run Code Online (Sandbox Code Playgroud)

代替.'dot'匹配任何图表,'star'表示它可以重复零次或多次.我只是尝试了我的一个包,这确实忽略了我们要求的pdf插图.


G. *_*eck 9

文件的模式匹配有两种样式:

  1. 常用表达.这些用于一般字符串模式匹配.看?正则表达式
  2. 水珠.这些通常由UNIX shell使用.见?Sys.glob

你似乎在考虑使用globs,但是.Rbuildignore使用正则表达式.要将glob转换为正则表达式,请尝试

> glob2rx("*pdf")
[1] "^.*pdf$"
Run Code Online (Sandbox Code Playgroud)


the*_*ejh 7

在perl regexp中,.*?用作通配符.

但我认为你真正想要的是pdf$Rdata$.Rbuildignore中的条目似乎也会影响其路径匹配的文件.$意思是"路径的终点".


cdh*_*wie 5

*是一个量化器,它附加到前一个表达式,允许在0和无限重复之间.由于您没有在量词之前加上表达式,因此这是一个错误.

.是一个匹配任何字符的表达式.所以我怀疑你想.*pdf,.*Rdata