鉴于文本
public void MyFunction(int i, String str, boolean doIt) {
Log.i(TAG, "Enter MyFunction(int i, String str, boolean doIt)");
我想在第二行做一些替换,但不是第一行
public void MyFunction(int i, String str, boolean doIt) {
Log.i(TAG, "Enter MyFunction( i:" + i + ", str:" + str ", doIt:" + doIt + ")");
到目前为止,使用以下正则表达式我设法得到这些结果:
找到“ \w+\s+(\w+)([,\)])
”
替换为“ $1:" + $1 + "$2
”
public void MyFunction(i:" + i + ", str:" + str ", doIt:" + doIt + ") ") {
Log.i(TAG, "Enter MyFunction( i:" + i + ", str:" + str ", doIt:" + doIt + ") ");
有没有办法强制只在Log.i行上执行替换?
编辑:
我尝试了以下正则表达式“ Log\.i\(.*?\((\s*(\w+\s+(\w+)([,\)]))+
”
但 $1,$2,$3 仅包含最后一个匹配项(最后一个参数:doIt)
$1=布尔值 doIt)
$2=doIt
$3=)
当应该有 3 组 $1,$2,$3 时,每个参数一个。如果您知道如何检索多个匹配项,那也可以作为解决方案