Checkstyle匹配并允许合法的注释参数值

时间:2017-02-17 03:02:16

标签: java checkstyle

我有一个注释可以将参数的值作为字符串数组的字符串表示形式(例如" [\" Value1 \",\" Value2 \& #34;]&#34)。所以注释的价值基本上是一个字符串。 E.g。

@MyAnn(value = "[\"V1\"]")

有效的字符串集只能是:

  1. value = "[\"V1\", \"V2\", \"\"]"
  2. value = "[ ]"
  3. value = "[]"
  4. value = ""
  5. 匹配这些字符串的合法正则表达式是:

    value = (?:\"\[\s*(\\\".*\")*\s*\]\"|\"\"|\"\[\s*\]\")
    

    我希望有一种检查方式,以便当有人使用@MyAnn时,该值必须是其中之一。其他任何内容都应报告为违规行为。

    我遇到的问题是如何为无效值指定正则表达式(我的是有效值)。因为checkstyle需要我为非法值指定正则表达式。

    解决这个问题的方法是什么?

1 个答案:

答案 0 :(得分:0)

使用?!否定前瞻声明围绕正则表达式:

^((?!(?:\"\[\s*(\\\".*\")*\s*\]\"|\"\"|\"\[\s*\]\")).)*$

请参阅Checkstyle - How to exclude any file, but the ones ending with 'Impl.java', with a regex?