Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Mercurial.hg忽略负面展望_Regex_Mercurial_Tortoisehg_Hgignore - Fatal编程技术网

Regex Mercurial.hg忽略负面展望

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

使用Mercurial,我需要忽略所有文件,除了某个名为“keepers”的目录中的文件

从表面上看,使用正则表达式和负前瞻似乎很容易;然而,尽管我能够在RegexBuddy和其他工具中验证我的regex,但在Ortoisehg中,它并没有像预期的那样工作

档案:

  • 垃圾\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$)