除 .hg_keep 之外的所有文件的正则表达式
我使用空的 .hg_keep
文件在 Mercurial 中保留一些(否则为空)文件夹。
问题是我找不到一个有效的正则表达式来排除除 .hg_keep
文件之外的所有内容。
假设我们有这样的文件结构:
a/b/c2/.hg_keep
a/b/c/d/.hg_keep
a/b/c/d/file1
a/b/c/d2/.hg_keep
a/b/.hg_keep
a/b/file2
a/b/file1
a/.hg_keep
a/file2
a/file1
并且我只想保留 a/b/
下的 .hg_keep
文件。
在 http://gskinner.com/RegExr/ 的帮助下,我创建了以下 .hgignore< /code>:
syntax: regexp
.*b.*/(?!.*\.hg_keep)
但 Mercurial 会忽略 b
子文件夹中的所有 .hg_keep
文件。
# hg status
? .hgignore
? a/.hg_keep
? a/b/.hg_keep
? a/file1
? a/file
# hg status -i
I a/b/c/d/.hg_keep
I a/b/c/d/file1
I a/b/c/d2/.hg_keep
I a/b/c2/.hg_keep
I a/b/file1
I a/b/file2
我知道我可以hd add
所有.hg_keep
文件,但是有没有使用正则表达式(或glob)的解决方案?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
正则表达式否定可能适用于此。如果您想忽略除了
a/b/.hg_keep
文件之外的所有内容,您可以使用:此正则表达式中重要的部分是:
正则表达式
将匹配 < em>仅名为
a/b/.hg_keep
的文件。它的否定
将匹配其他一切。
Regexp negation might work for this. If you want to ignore everything except the
a/b/.hg_keep
file, you can probably use:The parts of this regexp that matter are:
The regular expression
would match only the file called
a/b/.hg_keep
.Its negation
will match everything else.
不太确定您在什么上下文中使用正则表达式,但这应该是它,这匹配以
.hg_keep
结尾的所有行:编辑: 这是一个匹配项目的正则表达式与上面的表达式不匹配:
Not quite sure in what context you are using the Regex but this should be it, this matches all lines ending in
.hg_keep
:EDIT: And here is a Regex to match items not matching the above expression:
尝试
(?!.*/\.hg_keep$)
。Try
(?!.*/\.hg_keep$)
.正在寻找与此类似的东西。
找到了答案,但这不是我们想听到的。
Looking for something similiar to this.
Found an answer, but it's not what we want to hear.