繁体   English   中英

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

[英]Checkstyle to match and allow legal annotation parameter values

我有一个注释,该注释的参数值可以作为字符串数组的字符串表示形式(例如“ [\\“ Value1 \\”,\\“ Value2 \\”]“)。 因此,注释的值基本上是字符串。 例如

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

有效的字符串集只能是:

  1. value = "[\\"V1\\", \\"V2\\", \\"\\"]"
  2. value = "[ ]"
  3. value = "[]"
  4. value = ""

与这些字符串匹配的合法正则表达式为:

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

我想要一种@MyAnn ,以便当某人使用@MyAnn该值必须为4之一。任何其他情况都应报告为违规。

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

解决的方式是什么?

?!包围您的正则表达式?! 否定超前断言:

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

请参阅Checkstyle-如何使用正则表达式排除任何文件(但以'Impl.java'结尾的文件除外)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM