我在C中有一组单元测试。他们的形式是:test_<filename>.c
,编译时它们是test_<filename>
。
我想在显示*.C
时显示新的hg status
文件,但要删除任何二进制文件(test_<filename>
)。
我现在拥有的是:
src/project/test/.+/test_.+[^\.][^c]$
除了一种情况之外,这种方法很好:<filename>
以c
结尾(即test_func
,来自test_func.c
)
然后显示test_func,状态为'? test_func'
我是一个温和的正则表达家伙,但已经搜索了几个星期,但是没有找到解决方案 - 一旦我看到它,我认为这很容易。
答案 0 :(得分:1)
这有点毛茸茸,但似乎有效,使用negative lookbehind((?<!a)b
部分):
src/project/test/.+/test.+([^c]|(?<!\.)c)$
展开我更改的部分 - 即([^c]|(?<!\.)c)
:
(
[^c] // the last character can be anything other than c
| // or, if it is c
(?<!\.)c // it cannot be preceded by .
)
需要使用负面后卫(“\
前面没有c
”)的额外.
来逃避.
,否则就意味着“任何角色”。