当前位置: 代码网 > it编程>编程语言>正则表达式 > Idea使用正则表达式批量替换字符串的方法

Idea使用正则表达式批量替换字符串的方法

2024年05月19日 正则表达式 我要评论
由于一开始的粗放扩张,公司项目代码里,遗留有很多类似魔法数的写死的id,导致现在维护困难。于是交给我任务,将这些id替换成静态变量。这些id有十多种,分布在十个文件中,总共六十多处,要手动去查找替换几

由于一开始的粗放扩张,公司项目代码里,遗留有很多类似魔法数的写死的id,导致现在维护困难。于是交给我任务,将这些id替换成静态变量。

这些id有十多种,分布在十个文件中,总共六十多处,要手动去查找替换几乎是不可能的。

idea中,菜单栏edit->find->replace in path可以打开全文件查找功能,可以对项目的所有文件中的内容进行查找替换。

现在我们有这样的代码,其中的abcd是写死的id:

string id="abcd".equals(str);

要替换成:

string id=constantservice.getby("abcd").equals(str);

如果只用普通的匹配,我会想到查找"string id=\"",替换成"string id=constantservice.getby(\""。

然而在项目中"string id=\""这样格式的代码是非常多的,普通的匹配很可能误伤到其他代码。

因此我使用正则匹配。点击右边的".*"图标打开正则匹配模式。

需要替换的代码符合这样的匹配模式:

string id=\"(\w+)\".equals\(str\);

可以替换成:

string id=constantservice.getby("$1").equals(str);

匹配模式中,写死的id可以用\"(\w+)\"表示。最外侧是转义的引号。括号代表一个匹配组,其中的\w匹配字符,+号表示字符出现1或多次。这样的模式符合项目中写死id。

替换串中$1代表匹配串中的第一个匹配组。因此,我们不用一次次的指定每个id,替换串自动将匹配的id替换到结果中。

这样,这项本来令人难以想象的复杂工作就轻松解决了。

到此这篇关于idea使用正则表达式批量替换字符串的文章就介绍到这了,更多相关idea正则表达式批量替换内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com