[英]Checkstyle to match and allow legal annotation parameter values
我有一个注释,该注释的参数值可以作为字符串数组的字符串表示形式(例如“ [\\“ Value1 \\”,\\“ Value2 \\”]“)。 因此,注释的值基本上是字符串。 例如
@MyAnn(value = "[\"V1\"]")
有效的字符串集只能是:
value = "[\\"V1\\", \\"V2\\", \\"\\"]"
value = "[ ]"
value = "[]"
value = ""
与这些字符串匹配的合法正则表达式为:
value = (?:\"\[\s*(\\\".*\")*\s*\]\"|\"\"|\"\[\s*\]\")
我想要一种@MyAnn
,以便当某人使用@MyAnn
该值必须为4之一。任何其他情况都应报告为违规。
我遇到的问题是如何为无效值指定正则表达式(mine是有效值)。 因为checkstyle需要我为非法值指定正则表达式。
解决的方式是什么?
用?!
包围您的正则表达式?!
否定超前断言:
^((?!(?:\"\[\s*(\\\".*\")*\s*\]\"|\"\"|\"\[\s*\]\")).)*$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.