今天遇到了一个问题,之前项目中的Toast是系统样式的。就是底部灰色。想到之前的项目中有一个封装好的蓝底白字的Toast.引进来之后需要替换一下原来的代码就是把
Toast.makeText(LoginActivity.this, "当前网络状态异常", Toast.LENGTH_SHORT).show();
替换成
ToastUtils.showMessage(LoginActivity.this, "当前网络状态异常");
要是手动替换的话,工作量在当前的项目中倒不是太大。但是手动一个一个的替换了大约10分钟后。还是感觉身为程序员不能这样手动干活。于是想到了用正则表达式来全局替换。但是遇到的问题就是替换的字符串不能写死。于是就google了一下(没有百度到)
AndroidStudio regex replace.发现IDEA还真带这个功能如下:
于是这样:
然后replace all:
这样就成功了。
两个表达式:
(.*)Toast.makeText\((.*),Toast.LENGTH_SHORT\).show\(\);
$1ToastUtils.showMessage($2);
功能的解释就是在被替换的文本正则中把需要引用的字符串用小括号阔起来,文本中本来带有小括号的需要用\转义。然后再在替换的字符踹中用$1,$2,$3............$n来引用。注意不是从0开始$0标识引用整个表达式。也可以用名字这个我没试