首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汞.hgignore阴性展望

汞.hgignore阴性展望
EN

Stack Overflow用户
提问于 2010-02-11 19:06:18
回答 1查看 1K关注 0票数 10

使用Mercurial,我需要忽略所有的文件,除了那些在某个目录中称为“守护者”。

从表面上看,这似乎很容易使用Regex和负查找;然而,尽管我能够在regex和其他工具中验证我的Regex,但在TortoiseHg中,它并不像预期的那样工作。

文件:

  • junk\junk.txt
  • junk\text
  • keepers\test\test
  • keepers\test\test2\hi.txt
  • keepersblah.txt

只应忽略“守护者”下的两个文件。

下面是我希望能奏效的准则:

代码语言:javascript
复制
^(?!keepers/).+$

令人遗憾的是,这导致所有文件被忽略。如果我把它改为:

代码语言:javascript
复制
^(?!keepers).+$

正如你所期望的那样。也就是说,它会忽略不以饲养员开头的任何文件/文件夹。但我确实想忽略那些从守护者开始的文件。

奇怪的是,如果我把它改成这个:

代码语言:javascript
复制
^(?!keepers/).+\..+$

它将正确地匹配文件夹,但是如果没有扩展名,它也不会忽略那些不在“守护者”文件夹中的文件。

如有任何建议,将不胜感激。

删除死ImageShack链路

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-11 19:27:17

第一个表达式的问题是,正则表达式也是针对“守护者”本身进行测试的。这种情况可以加上一个附加条件:

代码语言:javascript
复制
^(?!keepers(?:/|$))

或者(不那么紧凑,但更容易理解):

代码语言:javascript
复制
^(?!keepers/|keepers$)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2246964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档