我正在尝试添加一个checkstyle,它将限制android字符串资源中的符号数。我正在使用RegexpSingleLine(也尝试使用Regexp),并且已经有一个regexp表达式。现在的问题是,当字符串中的符号数在范围内时它会断言,但是当数字超出范围时,我需要断言相反的情况。所以我需要以某种方式反转表达式(或者使用某些属性)。有人可以帮忙吗? 这是我的支票。
<module name="RegexpSingleline">
<property name="fileExtensions" value="xml"/>
<property name="format" value='^\s*<string\s*name="string_name">(.{5,10})<'/>
</module>
答案 0 :(得分:1)
我从你的问题中假设你要标记长度不是5-10个字符的字符串。使用Checkstyle,您必须找到一个正则表达式。此检查没有“反转”选项。
这应该这样做(explanation):
<module name="RegexpSingleline">
<property name="fileExtensions" value="xml"/>
<property name="format"
value='^\s*<string\s*name="string_name">(?![^<]{5,10}<)([^<].*?)<'/>
</module>
以上内容与空字符串不匹配。如果您还需要标记空字符串,请使用此(explanation):
<module name="RegexpSingleline">
<property name="fileExtensions" value="xml"/>
<property name="format"
value='^\s*<string\s*name="string_name">(?:<|(?![^<]{5,10}<)([^<].*?)<)'/>
</module>