Regex Mercurial.hg忽略负面展望
使用Mercurial,我需要忽略所有文件,除了某个名为“keepers”的目录中的文件 从表面上看,使用正则表达式和负前瞻似乎很容易;然而,尽管我能够在RegexBuddy和其他工具中验证我的regex,但在Ortoisehg中,它并没有像预期的那样工作 档案:Regex Mercurial.hg忽略负面展望,regex,mercurial,tortoisehg,hgignore,Regex,Mercurial,Tortoisehg,Hgignore,使用Mercurial,我需要忽略所有文件,除了某个名为“keepers”的目录中的文件 从表面上看,使用正则表达式和负前瞻似乎很容易;然而,尽管我能够在RegexBuddy和其他工具中验证我的regex,但在Ortoisehg中,它并没有像预期的那样工作 档案: 垃圾\junk.txt 垃圾\文本 管理员\测试\测试 keepers\test\test2\hi.txt keepersblah.txt 不应忽略保管人下的两个文件 以下是我希望能够发挥作用的正则表达式: ^(?!keepers
- 垃圾\junk.txt
- 垃圾\文本
- 管理员\测试\测试
- keepers\test\test2\hi.txt
- keepersblah.txt
^(?!keepers/).+$
遗憾的是,这会导致忽略所有文件。如果我将其更改为:
^(?!keepers).+$
正如你所期望的那样。也就是说,它会忽略任何不以keepers开头的文件/文件夹。但我确实想忽略以管理员开头的文件
奇怪的是,如果我把它改成这样:
^(?!keepers/).+\..+$
它将与文件夹正确匹配,但如果没有扩展名,它不会忽略不在keepers文件夹中的文件
如有任何建议,将不胜感激
删除死掉的ImageShack链接您的第一个表达式的问题是,regex还针对“keepers”本身进行了测试。该情况可添加一个附加条件:
^(?!keepers(?:/|$))
或者(不太紧凑,但更容易理解):
我还尝试了
^(?!keepers\b)
,但在与“keepers.txt”的对抗中失败了!非常感谢,两个都做得很好。我已经绞尽脑汁一个小时了:)在一个前瞻性断言中,不需要非捕获组,因为它无论如何都不会被捕获:^(?!keepers(/|$)。
^(?!keepers/|keepers$)