当前位置: IT大杂烩 > Ubuntu  > 关于在Eclipse中使用正则表达式替换的一点记录(使用正则表达式的分组)

关于在Eclipse中使用正则表达式替换的一点记录(使用正则表达式的分组)

www.someabcd.com  网友分享于:Jun 8, 2018 5:51:06 PM

标签:

今天在工作中遇到了点替换的麻烦事,由于数据类进行了变动,具体情况是这样的,需要将下面的代码:

player.skillData[i].name

替换为:

player.skillData.getSkillInfo(i).name

具体来说就是将[i]改为getSkillInfo(i),不过遇到的问题是,需要修改的数量太多,200+个使用到的地方,而且括号中还不一定是“i”,可能是各种各样的形式(比如“index”、“_myIndex”等),总不能手动的一个一个改吧。。。

 

最后发现Eclipse是支持使用正则表达式的,所以只需要打开查找/替换窗口,勾上“正则表达式”,在查找文本框中填入:

(skillData\[)([a-zA-Z0-9_$]*)(\])

在替换为文本框中填入:

skillData.getSkillInfo($2)

好了,全部替换,当前文件下的所有文本都会被替换为我们需要的文本了。

 

最后重点说一下正则表达式的分组:

正则表达式会将匹配到的文本存储在“$”数组中,我们可以使用$0、$1、$2...访问到匹配成功的所有字符串,在表达式中,一个小括号即表示一个分组。

 

以我们的上面的表达式为例看一个示例,比如下面的文本:

var name:String = player.skillData[i].name;

经过匹配后的结果如下:

$0: skillData[i]
$1: skillData[
$2: i
$3: ]

我们发现,$0始终是匹配到的整个文本,而$1、$2和$3分别对应我们表达式中的3个小括号。

所以在替换时编写$2即表示这里使用匹配出的第二个小括号中的字符即“i”。

关于在Eclipse中使用正则表达式替换的一点记录(使用正则表达式的分组)

标签:

发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。
Copyright ©2018  IT大杂烩  版权所有  京ICP备11030978号-1 网站地图