【发布时间】:2013-04-11 04:51:14
【问题描述】:
我想用正则表达式替换函数定义和声明,即,
替换
public abstract void myFuction(MyParam myParam);
或
@Override
public void myFuction(MyParam myParam){
}
我试过这个正则表达式:
(@Override[\n\s\t]*)?public *(abstract)? *void
*generateProcessMethod *\(UIGenerationContext *[^)]+\)[\n\\s\t]*((\{[^{}]*?\})|;)
但问题是,如果该函数有任何其他{ 或},那么它将不起作用。
将[^{}] 替换为. 不是解决方案,因为它还替换了以下函数。
【问题讨论】:
-
JavaCC 和 ANTLR 等语法识别工具可能适合您的任务
-
如果你有 intellij idea 的终极版本,他们有非常强大的结构搜索和替换工具,可以完全满足你的需求。
-
你也可以看看 Eclipse JDT API。