在 checkstyle 中反向正则表达式
Reverse regexp in checkstyle
我正在尝试添加一个检查样式,它将限制 android 字符串资源中的符号数量。我正在使用 RegexpSingleLine(也尝试过使用 Regexp),并且已经有了一个正则表达式。现在的问题是它在字符串中的符号数量在范围内时断言,但我需要在相反的情况下断言,当数字超出范围时。所以我需要以某种方式反转表达式(或者可能使用一些 属性)。有人可以帮忙吗?
这是我的支票。
<module name="RegexpSingleline">
<property name="fileExtensions" value="xml"/>
<property name="format" value='^\s*<string\s*name="string_name">(.{5,10})<'/>
</module>
根据您的问题,我假设您想标记长度不超过 5-10 个字符的字符串。使用 Checkstyle,您必须找到执行此操作的正则表达式。此检查没有 "invert" 选项。
应该这样做 (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>
我正在尝试添加一个检查样式,它将限制 android 字符串资源中的符号数量。我正在使用 RegexpSingleLine(也尝试过使用 Regexp),并且已经有了一个正则表达式。现在的问题是它在字符串中的符号数量在范围内时断言,但我需要在相反的情况下断言,当数字超出范围时。所以我需要以某种方式反转表达式(或者可能使用一些 属性)。有人可以帮忙吗? 这是我的支票。
<module name="RegexpSingleline">
<property name="fileExtensions" value="xml"/>
<property name="format" value='^\s*<string\s*name="string_name">(.{5,10})<'/>
</module>
根据您的问题,我假设您想标记长度不超过 5-10 个字符的字符串。使用 Checkstyle,您必须找到执行此操作的正则表达式。此检查没有 "invert" 选项。
应该这样做 (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>