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