模式中的正则表达式否定
我正在尝试定义一个正则表达式模式,并在模式中包含否定。我想排除所有末尾带有“Test”的字符串。我知道字符否定 [^Test]
但这不是我要找的, [^Test]
等于 [^estT ]
。它应该传递给像 UserService
这样的字符串,而不是 UserServiceTest
。所以我所做的就是用 {min,max}
排除它。但它不起作用:(。
^([a-zA-Z0-9]+(Test){0,0})$
我最初的想法是将此模式放入 checkstyle 抑制配置中,并从 checkstyle 检查中排除所有测试类。
<module name="TreeWalker">
<property name="tabWidth" value="4"/>
<module name="TypeName">
<property name="format" value="([a-zA-Z0-9]+(Test){0,0})"/>
</module>
</module>
有谁知道我该如何解决这个问题?
干杯,
Kevin
I'm trying to define a regex pattern with a negation within the pattern. I want to exclude all strings with 'Test' on the end. I'm aware about the character negation [^Test]
but this is not what I'm looking for, [^Test]
is equal to [^estT]
. It should pass for strings like UserService
and not for UserServiceTest
. So what I did is to exclude that with {min,max}
. but it doesn't work :(.
^([a-zA-Z0-9]+(Test){0,0})$
My origin idea is to put this pattern into checkstyle suppress configuration, and exclude all the Test classes from checkstyle check.
<module name="TreeWalker">
<property name="tabWidth" value="4"/>
<module name="TypeName">
<property name="format" value="([a-zA-Z0-9]+(Test){0,0})"/>
</module>
</module>
Do anyone know how can I fix this issue?
Cheers,
Kevin
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用否定lookbehind断言。
请注意,并非所有正则表达式引擎都支持lookbehind。
You need to use a negative lookbehind assertion.
Note that not all regular expression engines support lookbehind.
怎么样
what about