java - Checkstyle 特定方法的多行正则表达式

标签 java regex multiline checkstyle

我正在 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/

相关文章:

java - Elasticsearch java 客户端搜索嵌套字段不起作用

java - Hibernate与sql server检索数据遇到意外的未知 token

Java正则表达式用逗号分割字符串但忽略引号和括号

android - 多行 TextView

python re.search 不适用于多行字符串

java - 如何恢复具有 ManyToOne 关系的 JPA 实体

java - Java中如何获取两点之间的尺寸

javascript - 将正则表达式字符串转换为javascript中的正则表达式对象

Regex/awk/etc 用于扫描我的源代码以进行翻译

mfc - MFC中多行cstatic文本垂直居中