我正在 Eclipse 中进行 java checkstyle 配置。我需要为第一行中不包含特定代码的所有公共(public)方法添加警告。示例:
public void doA(){
blabla();
//some code
}
public String doB(int i){
blabla();
//some code
}
public Boolean doC(String str){
//some code
}
我想要从 checkstyle 中得到的是,当存在具有 public 修饰符并且不从调用 blabla() 方法开始的方法时,标记该行或报告错误。我尝试使用/n 作为换行符创建一些多行正则表达式字符串,但到目前为止没有成功。
编辑:到目前为止我尝试过但没有成功:
<module name="RegexpMultiline">
<property name="format" value="(public)(\\s+)((?:[a-z][a-z0-9_]*))(\\s+)((?:[a-z][a-z0-9_]*))(\\(.*\\))(\\{)(/n)(blablabla)"/>
<property name="message" value="Public method should have blablabla."/>
</module>
最佳答案
在搜索模式中使用 Pattern.MULTILINE 指令:"(?m)...\\s*..."
。这将跨行应用模式。
在搜索模式中使用 Pattern.DOTALL 指令:“(?s)...\\s*...”
。这会捕获“\n带有
.”。
组合使用:“(?ms)...”
。
关于java - Checkstyle 特定方法的多行正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14122620/