模式中的正则表达式否定

发布于 2024-10-04 00:40:41 字数 671 浏览 3 评论 0原文

我正在尝试定义一个正则表达式模式,并在模式中包含否定。我想排除所有末尾带有“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 技术交流群。

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

发布评论

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

评论(2

慕巷 2024-10-11 00:40:41

您需要使用否定lookbehind断言

^([a-zA-Z0-9]+(?<!Test))$

请注意,并非所有正则表达式引擎都支持lookbehind。

You need to use a negative lookbehind assertion.

^([a-zA-Z0-9]+(?<!Test))$

Note that not all regular expression engines support lookbehind.

默嘫て 2024-10-11 00:40:41

怎么样

[a-zA-Z0-9]+[^(Test)]

what about

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