为什么.*(?!Integration)测试匹配FooIntegrationTest?

Dan*_*lan 4 regex intellij-idea negative-lookahead

我正在尝试编写一个正则表达式来运行所有单元测试但不运行集成测试.单元测试命名FooTest,集成测试命名BarIntegrationTest,"Foo"和"Bar"是变量. 我发现这篇文章是关于如何做到的,我已经解决了我的问题.但是,它的解决方案是使用这个正则表达式:

(.(?!Integration))*Test
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这个正则表达式不够:

.*(?!Integration)Test
Run Code Online (Sandbox Code Playgroud)

当我尝试第二个正则表达式时,我的集成测试仍在运行.

Boh*_*ian 7

您使用的是负的样子超前,但你要负的外观后面:

.*(?<!Integration)Test
Run Code Online (Sandbox Code Playgroud)

你的正则表达式断言"测试"不是"整合",当然这总是正确的.