阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

56次阅读
没有评论

共计 870 个字符,预计需要花费 3 分钟才能阅读完成。

导读 这篇文章给大家介绍了 Idea 使用正则表达式批量替换字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

由于一开始的粗放扩张,公司项目代码里,遗留有很多类似魔法数的写死的 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=\”” 这样格式的代码是非常多的,普通的匹配很可能误伤到其他代码。

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

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

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

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

可以替换成:

String id=ConstantService.getBy("$1").equals(str);

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

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

这样,这项本来令人难以想象的复杂工作就轻松解决了。到此这篇关于 Idea 使用正则表达式批量替换字符串的文章就介绍到这了。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计870字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中