当我尝试在.Rbuildignore文件中构建包含以下内容的包时,
*pdf
*Rdata
我收到了错误:
readLines(ignore_file)中的警告: '/home/user/project/.Rbuildignore'上找到不完整的最后一行
和
无效的正则表达式'* pdf'
我认为'*'是一个或多个角色的通配符?
答案 0 :(得分:9)
有关正则表达式的帮助,请参阅help(regex)
,尤其是Perl变种,并尝试
.*pdf
.*Rdata
代替。 'dot'匹配任何图表,'star'表示它可以重复零次或多次。我只是尝试了我的一个包,这确实忽略了我们要求的pdf插图。
答案 1 :(得分:9)
文件有两种模式匹配方式:
你似乎在考虑使用globs,但是.Rbuildignore使用正则表达式。要将glob转换为正则表达式,请尝试
> glob2rx("*pdf")
[1] "^.*pdf$"
答案 2 :(得分:7)
在perl regexp中,使用.*?
作为通配符。
但我认为你真正想要的是pdf$
和Rdata$
,因为.Rbuildignore中的条目似乎也影响了它们只匹配部分路径的文件。 $
表示“路径的终点”。
答案 3 :(得分:5)
*
是一个量词,附加到前一个表达式,允许在0和无限重复之间。由于您没有在量词之前加上表达式,因此这是一个错误。
.
是一个匹配任何字符的表达式。所以我怀疑你想要.*pdf
,.*Rdata
等等。