2

我正在尝试在模式中定义一个带有否定的正则表达式模式。我想排除最后带有“测试”的所有字符串。我知道字符否定[^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>

有谁知道我该如何解决这个问题?

干杯,

凯文

4

2 回答 2

6

您需要使用否定的lookbehind assertion

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

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

于 2010-11-25T11:22:53.477 回答
2

关于什么

[a-zA-Z0-9]+[^(Test)]
于 2011-01-21T08:34:13.733 回答