正则表达式在Java方法的某个位置插入字符串

时间:2014-10-27 05:20:22

标签: regex bash sed

我想使用sed。

在任何Java方法上添加throws java.lang.Exception

例如,

public static void main(String[] args) {

将替换为:

public static void main(String[] args) throws java.lang.Exception {

为了我的目的,我提出了一个匹配Java方法的正则表达式:

(public|static|private|protected)* (void|int|String|double|float)+\s([a-zA-Z]*)\s*\(.*\)\s*

我知道您可以使用sed s/FIND/REPLACE/g file来替换模式,但是如何匹配Java方法并在参数throws java.lang.Exception的右括号之后和开始大括号之前插入)任何Java方法的{

1 个答案:

答案 0 :(得分:0)

怎么样

sed -r 's/((public|static|private|protected|\s)*(void|int|String|double|float|\s)+\w+\([^)]*\)\s*)/\1throws java.lang.Exception / g'

测试:

echo "public static void main(String[] args) { " | sed -r 's/((public|static|private|protected|\s)*(void|int|String|double|float|\s)+\w+\([^)]*\)\s*)/\1throws java.lang.Exception / g'

将输出

public static void main(String[] args) throws java.lang.Exception {