这个正则替换如何写

一行
new class_name(args).call_back();

替换成

this.redirect(class_name.class,args);

能用sed替换吗,关键 class_name这个怎么作为动态的表达式。

对了,由于代码的缩进等因素记得把^去掉就可以了。处女答哈哈。

强大的sed是可以帮我们实现这个的呵呵,对于你的动态的class_name只需要使用(..)把其中的内容保存起来即可,在后边调用\1来获取标签的内容。
如:
[code="java"]
$cat text.txt
new String(args).call_back();
$sed "s/^new\ (.*)(args).call_back();/this.redirect(\1.class,args);/" test.txt
this.redirect(String.class,args);
[/code]

上边拿代码块java看起来不太直观呵呵,直接上了:
$sed "s/^new\ (.*)(args).call_back();/this.redirect(\1.class,args);/" test.txt