IDEA使用正则批量替换(理论上JetBrains全家桶都适用)
官方文档:Find and replace text using regular expressions | IntelliJ IDEA Documentation
我的替换需求是
Toast.makeText(context, "提示内容", Toast.LENGTH_SHORT).show();
替换为
Toaster.showShort("提示内容");
那么首先需要一个查找的正则表达式
(.*)Toast.makeText\((.*), (.*), Toast.LENGTH_SHORT\).show\(\);
第一个(.*)代表Toast左侧的所有内容,你看到的斜杠是用来转义的,然后第二个(.*)代表的就是makeText方法的第一个参数,第三个(.*)代表的就是makeText方法的第二个参数,如果你的每一个参数之间都有空格,检索的表达式也需要有空格。
示例图:
接下来就是书写需要替换的表达式。
$1Toaster.showShort($3);
我为了表达式更直观,我在Toast左侧添加了注释的斜杠,将表达式和示例图对比着看。$1的意思就是取出第一个(.*)的内容放在Toaster的左侧,$3的意思就是取第三个(.*)的内容,也就是makeText方法的第二个参数取出来作为showShort方法的参数。
举一反三
假如我需要将注释掉的代码批量去掉
//Toaster.showShort("提示内容");
那么表达是就可以写成
\/\/Toaster(.*)