10
使用Mercurial,我需要忽略所有文件,除了那些名爲「keepers」的特定目錄中的文件。Mercurial .hgignore Negative Lookahead
就事情而言,使用Regex和Negative Lookahead似乎很容易;然而,儘管我能夠在TortoiseHg中驗證Regex Buddy和其他工具中的正則表達式,但它並不像預期的那樣工作。
文件:
- 垃圾\ junk.txt
- 垃圾\文本
- 飼養員\測試\測試
- 飼養員\測試\ TEST2 \ hi.txt
- keepersblah.txt
只有在保持者下的兩個文件不應該被忽略。
這是我希望將工作的正則表達式:
^(?!keepers/).+$
遺憾的是,這會導致忽略所有文件。如果我將其更改爲:
^(?!keepers).+$
它的工作方式與您的預期相同。這是它忽略任何不以保持者開始的文件/文件夾。但我確實想忽略以守護者開頭的文件。
奇怪的是,如果我把它改成這樣:
^(?!keepers/).+\..+$
將文件夾正確地匹配,但如果他們不具有擴展名也不會忽略不是在飼養文件夾中。
任何意見,將不勝感激。
去除死皮ImageShack的鏈接
我還試圖'^(?飼養員\ b)中',但失敗反對「keepers.txt」 – eswald 2010-02-11 19:28:27
輝煌!非常感謝,兩人都很完美。我一直在敲我的頭一個小時:) – 2010-02-11 19:36:32
在前瞻斷言中,不需要非捕獲組,因爲它無法捕獲:'^(?! keepers(/ | $))。*' – Tomalak 2010-02-11 19:43:47