mFoo = foo;
mBar = bar;
// convert to
this.foo = foo;
this.bar = bar;
如何使用正则表达式来处理这种替换?请帮忙。以下是我在Android Studio(IntelliJ IDEA)Edit -> Find -> Replace in Path
Text to find: m([A-Z])([A-Za-z0-9]+) = L$1$2
Replace with: this\.L$1$2 = L$1$2
更新
上面的 L
是一个错字。根据{{3}}
\L
答案 0 :(得分:14)
您可以使用带有反向引用的模式,并将“=”之后的最后几个字分组:
Text to find: m([A-Z])([A-Za-z0-9]+) = (L\1\2)
Replace with: this\.L$1$2 = $3
在您发表评论后,我了解到您还遇到了小写/大写字符问题。所以尝试这种模式(我也简化了正则表达式):
m(\p{Alpha})(\w+) = (((?i)\1)\2)
并替换字符串:
this\.L$1$2 = $3
所以使用带有输入文本的示例:
mContext = context
你得到了这个:
this.LContext = context
我不知道你的text / replace字符串中指定的“L”是你的拼写错误还是其他错误,但如果是这样你可以通过以下方式更改“替换字符串”:
this\.$3 = $3
所以你可以得到这个:
this.context = context
请告诉我这是否对您有帮助!
答案 1 :(得分:0)
假设您有一个带有语句列表的文本文件:
This is text one$
This is text two!
Is this text three?
您想转义所有元字符。 1.在Android Studio中,通过按Ctrl + R打开“查找和替换”功能 2.在“查找”字段中输入: ([[\\ ^ \ $。\ | \?* +(){}]) 3.选中“正则表达式”复选框 4.在“替换”字段中输入: \ $ 1
现在结果应如下所示:
This is text one\$
This is text two\!
Is this text three\?
答案 2 :(得分:0)
感谢Simona R.,这是Android Studio中的一个简单示例。
我要替换
parentFragmentManager.let { dialogFragment.show(it, AlertDialogFragment.TAG) }
到
dialogFragment.show(parentFragmentManager, AlertDialogFragment.TAG)
分为几类,以便可以更改两个参数。
然后我用$1
和$2
替换:
parentFragmentManager.let \{ (\w+).show\(it, (\w+).TAG\) \}
$1.show\(parentFragmentManager, $2.TAG\)