我想使用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方法的{
?
答案 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 {