在checkstyle中反转regexp



我试图添加一个checkstyle,这将限制android字符串资源中的符号数量。我正在使用RegexpSingleLine(也尝试过Regexp),并且已经有一个Regexp表达式。现在的问题是,当字符串中的符号数在范围内时,它会断言,但我需要在相反的情况下断言,当数字在范围之外时。所以我需要以某种方式反转表达式(或者可能使用一些属性)。有人能帮忙吗?这是我的支票。

<module name="RegexpSingleline">
        <property name="fileExtensions" value="xml"/>
        <property name="format" value='^s*&lt;strings*name="string_name"&gt;(.{5,10})&lt;'/>
</module>

我从你的问题中假设你想标记长度不是5-10个字符的字符串。使用Checkstyle,你必须找到一个正则表达式。此检查没有"反转"选项。

应该这样做(解释):

<module name="RegexpSingleline">
    <property name="fileExtensions" value="xml"/>
    <property name="format"
        value='^s*&lt;strings*name="string_name"&gt;(?![^&lt;]{5,10}&lt;)([^&lt;].*?)&lt;'/>
</module>
上面的

将不匹配空字符串。如果你也需要标记空字符串,使用这个(解释):

<module name="RegexpSingleline">
    <property name="fileExtensions" value="xml"/>
    <property name="format"
        value='^s*&lt;strings*name="string_name"&gt;(?:&lt;|(?![^&lt;]{5,10}&lt;)([^&lt;].*?)&lt;)'/>
</module>

最新更新