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=\""这样格式的代码是非常多的,普通的匹配很可能误伤到其他代码。

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

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

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

可以替换成:

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

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

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

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

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

(0)

相关推荐

  • idea 正则表达式搜索替换应用详解

    idea 正则表达式搜索替换简单应用 利用正则表达式,idea可以进行快速大量替换 1.CTRL+R 快捷键调出下面当前页面替代操作栏 注意要使用正则表达式替换需要勾选regex 2.利用正则表达式进行替换 下面展示一些 简单操作的例子. (\w+)get\(0\).getValue\("(\w+)"\) dtCfwStget(0).getValue("CFW_CD") $1.getValue(0,"$2") dtCfwSt.getValue(0

  • Intellij IDEA全局替换快捷键整理

    IDEA全局替换 通过快捷键 Ctrl+Shift+r 或这点击 Edit >Find >Replace In Path 有些IDEA版本按了快捷键也没效果,经常遇到的原因如下: 1.与其他软件快捷键冲突了,特别是输入法的快捷键. 解决方案是:把输入法的快捷键禁了. 2.有时候全局搜索不到搜索内容,可是就是有 解决方案:这时候 File >Invalidate Caches/Restart 清下缓存即可; 3.有些IDEA版本的默认快捷键发生了变化,这时要去更改快捷键设置 解决方案:fi

  • IntelliJ IDEA全局内容搜索和替换教程图解

    在做项目时,有时会在整个项目里或指定文件夹下进行全局搜索和替换,这是一个很方便功能.使用方法如下: 一.全局搜索 1.使用快捷键Ctrl+Shift+F打开搜索窗口,或者通过点击Edit–>Find–>Find in path打开搜索窗口,如下图: 2.搜索界面如下,主要分为上中下三部分,上部主要为搜索条件(要搜索的内容.范围.方式等),中间部分为包含搜索内容的文件列表,点击单个文件可以在下面部分预览文件内容. 3.搜索范围包括整个项目In project.模块module.指定目录direc

  • IDEA全量替换一次性解决旧项目并将所有文件换行符改为LF问题

    在java项目开发中.最开始换行符大家一般是在idea中设置新文件为LF,并且对旧文件通过IDEA下方的点击来更换换行符.很显然,对于几千文件的旧项目明显是不合理.后来我找到idea的官网文档 https://www.jetbrains.com/help/idea/configuring-line-endings-and-line-separators.html 用谷歌翻译后如下,按图操作.握草,九百多的文件改变量. 总结 以上所述是小编给大家介绍的IDEA全量替换一次性解决旧项目并将所有文件换

  • IntelliJ IDEA搜索整个项目进行全局替换(有危险慎用)

    我们用Eclipse或者IntelliJ IDEA编程,有时候需要将整个项目的某个字符串替换成其他的. 全局搜索我会,我还给调成ctrl+g了呢,但是遇到要全局(整个项目)替换字符串.哎哟,我有点蒙了.这不换了编辑器吗. 我用的是eclipse的keymap而且电脑又不是mac.那么问题来啦.怎么找快捷键呢. 如下: 额,顺便说下,mac的好像是ctrl+shift+r,就出来了.我还讨来了个mac截图. 本功能请谨慎使用! 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作

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

    由于一开始的粗放扩张,公司项目代码里,遗留有很多类似魔法数的写死的id,导致现在维护困难.于是交给我任务,将这些id替换成静态变量. 这些id有十多种,分布在十个文件中,总共六十多处,要手动去查找替换几乎是不可能的. Idea中,菜单栏Edit->find->replace in path可以打开全文件查找功能,可以对项目的所有文件中的内容进行查找替换. 现在我们有这样的代码,其中的abcd是写死的id: String id="abcd".equals(str); 要替换成

  • MSSQL批量替换语句 在SQL SERVER中批量替换字符串的方法

    方法一:(这种是最常用的,因为很多大段的内容都使用text ntext等数据类型,而我们通常也是替换里面的内容) varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 复制代码 代码如下: update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,'原本内容','想要替换成什么') 方法二:(替换其他数据

  • SQL Server中利用正则表达式替换字符串的方法

    建立正则替换函数,利用了OLE对象,以下是函数代码: --如果存在则删除原有函数 IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION dbo.RegexReplace GO --开始创建正则替换函数 CREATE FUNCTION dbo.RegexReplace ( @string VARCHAR(MAX), --被替换的字符串 @pattern VARCHAR(255), --替换模板 @replacestr VARCHAR

  • JS正则表达式替换字符串replace()方法实例代码

    目录 replace()方法介绍 简单用法 重点:函数替换 补充:替换特殊字符 总结 replace()方法介绍 replace()方法执行搜索替换操作. 它接收一个正则表达式作为第一个参数, 接收一个替换字符串作为第二个参数. 它搜索调用它的字符串, 寻找与指定模式匹配的文本. 如果正则表达式带g标志, replace()方法会替换字符串中的所有匹配项; 否则, 它只替换第一个匹配项. 如果replace()方法的第一个参数是一个字符串而非正则表达式, 这个方法会按照字面值进行搜索. 简单用法

  • mysql基于正则实现模糊替换字符串的方法分析

    本文实例讲述了mysql基于正则实现模糊替换字符串的方法.分享给大家供大家参考,具体如下: 例如: abcd(efg)hijk 替换之后是abcdhijk 复制代码 代码如下: update tabaleA set name = replace(name, substring(name, locate('<contact>', name),locate('</contact>', name)-locate('<contact>'+10, name)),''); 执行之后

  • JavaScript使用replace函数替换字符串的方法

    本文实例讲述了JavaScript使用replace函数替换字符串的方法.分享给大家供大家参考.具体如下: JavaScript通过replace函数替换字符串,下面的代码将Visit Microsoft中的MicroSoft替换成jb51.net <!DOCTYPE html> <html> <body> <p> Click the button to replace "Microsoft" with "jb51.net&qu

  • js正则表达式校验指定字符串的方法

    最新一个小表单验证需求:"只能输入汉字,并且必须包含"支行","分行","银行","信用社""字样,需用正则表达式校验 故写出了如下的表达式 var patt1=new RegExp(/^[\u0391-\uFFE5]*(([\u652f]{1}[\u884c]{1})|([\u5206]{1}[\u884c]{1})|([\u94f6]{1}[\u884c]{1})|([\u4fe1]{1}[\u7528

  • PowerShell中使用正则表达式跨行匹配字符串的方法

    本文介绍在PowerShell中当使用正则表达式时遇到多行字符串,如何进行跨行匹配的问题. PowerShell中使用正则表达式来匹配搜索字符串是非常常用的一个操作.但如果遇到一个字符串有多行时,常规的正则表达式,无法正常工作. 不信请看: 复制代码 代码如下: PS C:\Users\spaybow> "1111`n2222" -match "^1.*2$" False PS C:\Users\spaybow> "1111`n2222&quo

  • 写了个批量替换字符串的bat批处理(replaceChar.bat)

    在windows上跑case时,我用它来替换xml文档中的名称和值什么的,还可以.但如果遇到bat中有特殊意义的字符比如<,>,%等就不行了,而且替换过程会消除每行的空格.鉴于dos知识有限,还没找到好的办法来避免这两种状况.如果用shell脚本完成替换功能就简单多了.或者直接用ultraedit的替换功能更简单. 代码如下: @echo off rem **********************************************************************

  • Pandas中批量替换字符的六种方法总结

    目录 一.前言 二.解决过程 方法一 方法二 方法三 方法四 方法五 方法六 三.总结 一.前言 前几天在Python最强王者群有个叫[dcpeng]的粉丝问了一个关于Pandas中的问题,这里拿出来给大家分享下,一起学习. 想问一下我有一列编码为1,2,3,4的数据,如何将1批量换为“开心”,2批量换为“悲伤”这种字符替换呢? 二.解决过程 思路挺简单,限定Pandas处理,想到的方法有很多,这里拿出来给大家分享,希望对大家的学习有帮助. 下面这个是生成源数据的代码: df = pd.Data

随机推荐