正则在AS中的使用经历

      工程中直接使用的Toast.makeText(text).show();然后有一天产品说要让Toast居中显示,嗯改动不大,但是使用的地方有百十来条吧,换成之前也就全局搜下Toast.makeText,然后将前面改成ToastUtil.show(...)。然后再删掉尾部的.show(),也就重复个百八十次吧。

      前端时间略微学习了下正则,第一感觉是先看下AS是否支持正则搜索。

如图这个地方点中,就是按正则搜索了。搜索到之后,我需要进行全局替换。我需要保留toast中的字符串部分,干掉其它,然后替换成ToastUtil.show(保留的字符串)。需要先将要保留的地方进行分组。加上()就行了。问题在于如果在替换时进行引用。

      之前学正则,分组可以命名:(?P<name>)这种。然后可以(?P=name)去用。结果不行,应该是正则表达式中后面引用前面的引用可以用这个方式吧。然后跑到嗨正则上进行测试。发现\1可以,然后回到AS尝试,发现依然不行,\name $name等都试了,不行,然后又去嗨正则,发现左边可以选择语音,默认是php的,也就是说AS不是支持php的。然后嗨正则中选中了javascripte。然后进行尝试,发现$1可以获取到,然后去As尝试也没有问题,大功告成。

      原始toast:Toast.makeText(text).show();

      需要改成:ToastUtil.showToast(text);

全局搜索,选中正则,输入正则:Toast.makeText(?<a>.*).show\(\);

替换部分输入:ToastUtil.showToast$1;

替换即可,当然会有一个小问题,就是ToastUtil的Import问题,需要替换时处理,但是操作复杂度也远小于之前的步骤了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值