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

 更新时间:2021-08-04 16:02:26   作者:佚名   我要评论(0)

由于一开始的粗放扩张,公司项目代码里,遗留有很多类似魔法数的写死的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正则表达式批量替换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • idea 正则表达式搜索替换应用详解
  • Intellij IDEA全局替换快捷键整理
  • IDEA全量替换一次性解决旧项目并将所有文件换行符改为LF问题
  • IntelliJ IDEA搜索整个项目进行全局替换(有危险慎用)
  • IntelliJ IDEA全局内容搜索和替换教程图解

相关文章

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

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

    由于一开始的粗放扩张,公司项目代码里,遗留有很多类似魔法数的写死的id,导致现在维护困难。于是交给我任务,将这些id替换成静态变量。 这
    2021-08-04
  • .net core异常中间件的使用

    .net core异常中间件的使用

    目录正文结 正文 if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } 这样写入中间件哈,那么在env环境下就会去执行UseDe
    2021-08-04
  • ASP.NET Core文件压缩常见使用误区(最佳实践)

    ASP.NET Core文件压缩常见使用误区(最佳实践)

    前言   在微软官方文档中,未明确指出文件压缩功能的使用误区。   本文将对 ASP.NET Core 文件响应压缩的常见使用误区做出说明。 误区1:
    2021-08-04
  • .Net Core中使用Autofac替换自带的DI容器的示例

    .Net Core中使用Autofac替换自带的DI容器的示例

    目录项目创建方案演示.Net Core自带DI不同的特性批量注入属性注入存储并提取容器实例为什么叫浅谈呢?就是字面上的意思,讲得比较浅,又不是
    2021-08-04
  • .net core静态中间件的使用

    .net core静态中间件的使用

    目录正文 结正文 我们使用静态文件调用: app.UseStaticFiles(); 那么这个默认会将我们根目录下的wwwroot作为静态目录。 这个就比较值
    2021-08-04
  • ASP.NET Core读取Request.Body的正确方法

    ASP.NET Core读取Request.Body的正确方法

    目录前言常用读取方式同步读取异步读取重复读取源码探究StreamReader和Stream的关系HttpRequest的BodyAllowSynchronousIO本质来源EnableBuff
    2021-08-04
  • Asp.net中UpdatePanel的用法详解

    Asp.net中UpdatePanel的用法详解

    Asp.net UpdatePanel 允许用户构建一个丰富的,以客户端为中心的应用程序,引用UpdatePanel控件,能够实现页面的部分刷新,一个包含scriptMa
    2021-08-04
  • .NET 开源项目Polly的简单介绍

    .NET 开源项目Polly的简单介绍

    目录Polly 介绍 故障处理策略示例 Polly 的七种策略 重试(Retry) 断路(Circuit-breaker) 超时(Timeout) 隔离(Bulkhead Isolati
    2021-08-04
  • ASP.NET Core中间件初始化的实现

    ASP.NET Core中间件初始化的实现

    目录前言 自定义的方式 Use方式 基于约定的方式 实现IMiddleware的方式 源码探究 Use扩展方法 UseMiddleware 总结 前言 在
    2021-08-04
  • .Net Core限流的实现示例

    .Net Core限流的实现示例

    目录一、环境 二、基础使用 1.设置2.规则设置3.特殊规则的启用 三、请求返回头 四、使用Redis存储 1、访问计数 2、ip特殊规则 3、客户
    2021-08-04

最新评论