用于嵌套函数调用的Java Regex

时间:2015-10-14 15:55:53

标签: java regex method-call

我有大约200个表单

的函数调用
markers.add(packageDecl.getPosition(), "package.invalid", this.fullName);

需要替换为

markers.add(I18n.createMarker(packageDecl.getPosition(), "package.invalid", this.fullName));
            ^^^^^^^^^^^^^^^^^^                                                            ^

它们可以有任意数量的函数参数,参数可以是嵌套调用,如示例所示。但是,假设;总是由换行符继续。

我已经尝试了这个正则表达式:

markers\.add\((.*)$

允许我删除markers.add(部分并添加I18n.createMarker(。但是,我不能在末尾添加额外的右括号:); -> ));

2 个答案:

答案 0 :(得分:1)

你能不能用这个:

Regex:   markers\.add\((.*)\)"
Replace: markers.add(I18n.createMarker(\1))

答案 1 :(得分:0)

这个丑陋的东西似乎适用于Eclipse正则表达式找到:

markers\.add\((.|\n)*;$