hg .ignore regex - 如何允许显示新的/修改的 test_.c 但不显示二进制 test_?
我有一组 C 语言的单元测试。它们的形式是: test_
,编译后它们是 test_
。
我试图在显示 hg status
时显示新的 *.C
文件,但任何二进制文件 (test_
)被压制。
我现在所拥有的是:
src/project/test/.+/test_.+[^\.][^c]$
除了一种情况之外,这工作正常:其中
以 c
结尾(即 test_func
,来自 test_func.c
)
然后 test_func 显示状态为 '? test_func'
我是一个温和的正则表达式专家,但已经搜索了几周,但还没有找到解决方案 - 一旦我看到它,我认为这很容易。
I have a set of unit tests in C. Their form is: test_<filename>.c
and when compiled they are test_<filename>
.
I am trying to have new *.C
file show up when a hg status
is displayed, but any binary files (test_<filename>
) to be suppressed.
What I have now is:
src/project/test/.+/test_.+[^\.][^c]$
this works fine except for one case: where the <filename>
ends with a c
(i.e., test_func
, from test_func.c
)
Then test_func is displayed with a status of '? test_func'
I am a moderate regex guy, but have searched for a couple of weeks, but haven't found a solution - which I assume to be easy, once I see it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这有点毛茸茸的,但它似乎可以工作,使用 负向后查找 (这就是
(? 部分):
扩展我更改的部分 - 即
([^c]|(?:
额外的需要在否定lookbehind中的
\
(“c
前面没有.
”)来转义.
,这否则表示“任何字符”。This is a bit hairy, but it seems to work, using a negative lookbehind (that's the
(?<!a)b
part):To expand the part I changed — that is,
([^c]|(?<!\.)c)
:The extra
\
in the negative lookbehind ("c
not preceded by.
") is needed to escape the.
, which otherwise means "any character".