通过regexp删除整个方法

时间:2013-05-22 20:42:55

标签: java regex eclipse

我正在清理我的代码库,我想知道我是否可以使用Eclipse regexp删除(替换)所有与日志相关的内容。

示例代码:

public static void setFoo( Foo param ) {
    singleton.setBar(param);
}

private void log(String msg) {
    Logger.log( msg );
}

private void setBar( Foo param ) {
    log( "Foo: " 
        + param.toString() );
    log( "bar" );
    this.mParam = param;
}

每个类都有自己的私有log(String msg)方法,需要删除这些方法以及对这些方法的所有引用。我在网上看了一些提示和提示,尝试了几个例子但没有成功......

更新

搜索单行日志() - 引用与^.*{1}\Wlog{1}\W.*\;\R

一起使用 {1}\W周围的{p> log用于拒绝Dialoglogo等匹配。

如何添加多行支持?表达式中的(?s)将导致log -match ...

之前文件中所有文字的匹配

有人能帮助我吗?

3 个答案:

答案 0 :(得分:1)

您可以先删除所有用于记录的import语句。然后,日志记录行将显示为编译时错误。

答案 1 :(得分:0)

我不认为可以通过代码库中的一个查找/替换或重构操作来完成此操作。最简单的方法是逐类:

  1. 删除日志方法的内容
  2. 选择方法
  3. 选择重构>直列...

答案 2 :(得分:0)

睡了之后我终于得到了一个解决方案......

  1. 可以通过表达式删除所有log(String msg){}方法 (?s)^(\s|\w)*void\s{1}log{1}\W(.|^})*?[}](\s)*\R。适用于问题中定义的方法定义。

  2. (?s)^\s*log{1}\W(.|^;)*?[;](\s)*\R可以删除所有引用。与多行方法调用匹配。

  3. 如果您发现某些违规行为,请随意修改语法,但这些表达式似乎对我的需求非常强大。