Mic*_*oie 10 regex mercurial tortoisehg hgignore
使用Mercurial,我需要忽略所有文件,除了名为"keepers"的某个目录中的文件.
从表面上看,使用Regex和Negative Lookahead似乎很容易; 但是,虽然我能够在Regex Buddy和其他工具中验证我的正则表达式,但在TortoiseHg中,它并没有按预期工作.
文件:
只有守护者下的两个文件不应该被忽略.
这是我希望的正则表达式:
^(?!keepers/).+$
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这会导致忽略所有文件.如果我将其更改为:
^(?!keepers).+$
Run Code Online (Sandbox Code Playgroud)
它可以像你期望的那样工作.也就是说,它会忽略任何不以keepers开头的文件/文件夹.但我确实想忽略以keepers开头的文件.
奇怪的是,如果我改成它:
^(?!keepers/).+\..+$
Run Code Online (Sandbox Code Playgroud)
它将正确匹配文件夹,但如果没有扩展名,则不会忽略不在keepers文件夹中的文件.
任何意见,将不胜感激.
删除死的ImageShack链接
你的第一个表达式的问题是正则表达式也针对"keepers"本身进行了测试.这种情况可以添加一个附加条件:
^(?!keepers(?:/|$))
Run Code Online (Sandbox Code Playgroud)
或(不太紧凑,但更容易理解):
^(?!keepers/|keepers$)
Run Code Online (Sandbox Code Playgroud)