Checkstyle Multiline正则表达式用于特定方法

时间:2013-01-02 13:06:26

标签: java regex multiline checkstyle

我正在Eclipse中进行java checkstyle配置。我需要为第一行中不包含特定代码的所有公共方法添加警告。例如:

public void doA(){
    blabla();
    //some code
}

public String doB(int i){
    blabla();
    //some code
}

public Boolean doC(String str){
    //some code
}

我想从checkstyle得到的是当有方法具有公共修饰符并且不以调用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>

1 个答案:

答案 0 :(得分:2)

在搜索模式中使用Pattern.MULTILINE指令:"(?m)...\\s*..."。这将跨线应用模式。

在搜索模式中使用Pattern.DOTALL指令:"(?s)...\\s*..."。这会捕获'\ n with a。。。

结合使用:"(?ms)..."