我正在清理我的代码库,我想知道我是否可以使用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
用于拒绝Dialog
,logo
等匹配。
如何添加多行支持?表达式中的(?s)
将导致log
-match ...
有人能帮助我吗?
答案 0 :(得分:1)
您可以先删除所有用于记录的import语句。然后,日志记录行将显示为编译时错误。
答案 1 :(得分:0)
我不认为可以通过代码库中的一个查找/替换或重构操作来完成此操作。最简单的方法是逐类:
答案 2 :(得分:0)
睡了之后我终于得到了一个解决方案......
可以通过表达式删除所有log(String msg){}
方法
(?s)^(\s|\w)*void\s{1}log{1}\W(.|^})*?[}](\s)*\R
。适用于问题中定义的方法定义。
(?s)^\s*log{1}\W(.|^;)*?[;](\s)*\R
可以删除所有引用。与多行方法调用匹配。
如果您发现某些违规行为,请随意修改语法,但这些表达式似乎对我的需求非常强大。