使用Mercurial,我需要忽略所有的文件,除了那些在某个目录中称为“守护者”。
从表面上看,这似乎很容易使用Regex和负查找;然而,尽管我能够在regex和其他工具中验证我的Regex,但在TortoiseHg中,它并不像预期的那样工作。
文件:
只应忽略“守护者”下的两个文件。
下面是我希望能奏效的准则:
^(?!keepers/).+$令人遗憾的是,这导致所有文件被忽略。如果我把它改为:
^(?!keepers).+$正如你所期望的那样。也就是说,它会忽略不以饲养员开头的任何文件/文件夹。但我确实想忽略那些从守护者开始的文件。
奇怪的是,如果我把它改成这个:
^(?!keepers/).+\..+$它将正确地匹配文件夹,但是如果没有扩展名,它也不会忽略那些不在“守护者”文件夹中的文件。
如有任何建议,将不胜感激。
删除死ImageShack链路
发布于 2010-02-11 19:27:17
第一个表达式的问题是,正则表达式也是针对“守护者”本身进行测试的。这种情况可以加上一个附加条件:
^(?!keepers(?:/|$))或者(不那么紧凑,但更容易理解):
^(?!keepers/|keepers$)https://stackoverflow.com/questions/2246964
复制相似问题