我有一个注释可以将参数的值作为字符串数组的字符串表示形式(例如" [\" Value1 \",\" Value2 \& #34;]&#34)。所以注释的价值基本上是一个字符串。 E.g。
@MyAnn(value = "[\"V1\"]")
有效的字符串集只能是:
value = "[\"V1\", \"V2\", \"\"]"
value = "[ ]"
value = "[]"
value = ""
匹配这些字符串的合法正则表达式是:
value = (?:\"\[\s*(\\\".*\")*\s*\]\"|\"\"|\"\[\s*\]\")
我希望有一种检查方式,以便当有人使用@MyAnn
时,该值必须是其中之一。其他任何内容都应报告为违规行为。
我遇到的问题是如何为无效值指定正则表达式(我的是有效值)。因为checkstyle需要我为非法值指定正则表达式。
解决这个问题的方法是什么?
答案 0 :(得分:0)
使用?!
否定前瞻声明围绕正则表达式:
^((?!(?:\"\[\s*(\\\".*\")*\s*\]\"|\"\"|\"\[\s*\]\")).)*$
请参阅Checkstyle - How to exclude any file, but the ones ending with 'Impl.java', with a regex?