【问题标题】:regex negation in a pattern模式中的正则表达式否定
【发布时间】:2011-05-15 15:42:50
【问题描述】:

我正在尝试在模式中定义一个带有否定的正则表达式模式。我想排除最后带有“测试”的所有字符串。我知道字符否定[^Test] 但这不是我要找的,[^Test] 等于[^estT]。它应该传递给像UserService 这样的字符串,而不是传递给UserServiceTest。所以我所做的就是用{min,max} 排除它。但它不起作用:(。

^([a-zA-Z0-9]+(Test){0,0})$

我的初衷是将这种模式放入checkstyle suppress配置中,并从checkstyle检查中排除所有Test类。

<module name="TreeWalker">
  <property name="tabWidth" value="4"/>
  <module name="TypeName">
    <property name="format" value="([a-zA-Z0-9]+(Test){0,0})"/>
  </module>
</module>

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

干杯,

凯文

【问题讨论】:

    标签: regex checkstyle regex-negation


    【解决方案1】:

    您需要使用negative lookbehind assertion

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

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

    【讨论】:

      【解决方案2】:

      怎么样

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

      【讨论】:

        猜你喜欢
        • 2017-03-09
        • 1970-01-01
        • 1970-01-01
        • 2019-04-10
        • 1970-01-01
        • 2015-07-11
        • 2017-06-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多