hg .ignore regex - 如何允许显示新的/修改的 test_.c 但不显示二进制 test_

发布于 2024-11-09 06:07:20 字数 558 浏览 5 评论 0原文

我有一组 C 语言的单元测试。它们的形式是: test_.c ,编译后它们是 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

策马西风 2024-11-16 06:07:20

这有点毛茸茸的,但它似乎可以工作,使用 负向后查找 (这就是 (? 部分):

src/project/test/.+/test.+([^c]|(?<!\.)c)$

扩展我更改的部分 - 即 ([^c]|(?:

(
    [^c]             // the last character can be anything other than c
    |                // or, if it is c
    (?<!\.)c         // it cannot be preceded by .
)

额外的需要在否定lookbehind中的\(“c前面没有.”)来转义.,这否则表示“任何字符”。

This is a bit hairy, but it seems to work, using a negative lookbehind (that's the (?<!a)b part):

src/project/test/.+/test.+([^c]|(?<!\.)c)$

To expand the part I changed — that is, ([^c]|(?<!\.)c):

(
    [^c]             // the last character can be anything other than c
    |                // or, if it is c
    (?<!\.)c         // it cannot be preceded by .
)

The extra \ in the negative lookbehind ("c not preceded by .") is needed to escape the ., which otherwise means "any character".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文