Eclipse利用正则表达式一键替换

最近的项目是做sdk开发,把原有的项目整成一个库工程给第三方调用,为了不暴露源码,把src下的文件打成jar包后丢在了libs目录下,但是jar包引用res资源需要换一种方式去调用,不能用以前的R.XXX.name的方式引用了。

问题来了,上千个R.resType.resName的引用,需要改成ResouceUtil.getResouceIdByType(getApplicationContext(), "resType", "resName")这样的引用方式,不可能手动去改吧?太累。用Ctrl + H一键替换也不能一步到位。在这样的情况下,我不得不硬着头皮去学习正则表达式,利用正则进行替换。

对比了以下两种写法:

R.resType.resName

ResouceUtil.getResouceIdByType(getApplicationContext(), "resType", "resName")

正则表达式初步完成:

查找:R\.([a-zA-Z]{2,9})\.(\w+)

替换:ResouceUtil.getResouceIdByType(getApplicationContext(), "$1", "$2")


解释:查找的格式很简单,也不需考虑贪婪模式,因为后面通常接着的是符号,不在w范围内。主要是两个括号分组,分别在替换的时候引用就好了。

效果如图所示:



附:

正则表达式学习教程(推荐):

http://www.sub-273.com/demo/RegEx/regex.html


正则表达式chm手册:

http://www.php100.com/manual/unze.html


正则表达式在线测试:

http://tool.oschina.net/regex

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值