[英]Why doesn't '*' work as a perl regexp in my .Rbuildignore file?
當我嘗試在我的.Rbuildignore文件中構建包含以下內容的包時,
*pdf
*Rdata
我得到錯誤:
readLines(ignore_file)中的警告:在'/home/user/project/.Rbuildignore'上找到不完整的最后一行
和
無效的正則表達式'* pdf'
我以為'*'是一個或多個角色的通配符?
有關help(regex)
的幫助,請參閱help(regex)
,尤其是 Perl變種,並嘗試
.*pdf
.*Rdata
代替。 'dot'匹配任何圖表,'star'表示它可以重復零次或多次。 我只是嘗試了我的一個包,這確實忽略了我們要求的pdf插圖。
文件的模式匹配有兩種樣式:
你似乎在考慮使用globs,但是.Rbuildignore使用正則表達式。 要將glob轉換為正則表達式,請嘗試
> glob2rx("*pdf")
[1] "^.*pdf$"
在perl regexp中,使用.*?
作為通配符。
但我認為你真正想要的是pdf$
和Rdata$
因為Rdata$
中的條目似乎也影響了它們只匹配部分路徑的文件。 $
表示“路徑的終點”。
*
是一個量化器,它附加到前一個表達式,允許在0和無限重復之間。 由於您沒有在量詞之前加上表達式,因此這是一個錯誤。
.
是一個匹配任何字符的表達式。 所以我懷疑你想要.*pdf
, .*Rdata
等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.