IDEA批量替换项目下所有文件中的特定内容
文章目录
- 1. 问题引入
- 2. 批量替换项目下所有文件中的特定内容
- 2.1 右键项目的根目录,点击在文件中替换
- 2.2 输入要替换的内容
- 3. 解决替换一整行文本后出现空行的问题
- 4. 增加筛选条件提高匹配的精确度
更多 IDEA 的使用技巧可以查看 IDEA 专栏: IDEA
1. 问题引入
在使用IDEA开发项目时,你是否遇到过以下难题
需要将项目下所有文件中的特定内容换成指定文本,但CTRL + R
替换只适用于单个文件,一个文件一个文件地替换不太现实,而且要找到哪个文件中包含特定文本也不简单
什么情况下会使用到批量替换项目下所有文件中的特定内容
功能呢
我们下载一个开源项目进行二次开发时,文件中可能会有作者信息和文件的创建时间,如果要去除这些信息,就需要用到批量替换项目下所有文件中的特定文本
功能
可能你会说我是要删除这些特定内容,而不是将这些特定内容替换成特定文本。那如果我们将这些特定内容都换成空字符串,不就能达到相同的效果了吗
那有没有方法批量替换项目下所有文件中的特定文本呢?当然有,IDEA的研发组早已实现了这个功能
本次演示使用的是安装了汉化插件的 IDEA,英文版的 IDEA 操作类似
2. 批量替换项目下所有文件中的特定内容
本文演示的方法适用于JetBrains公司旗下的所有编程软件(Clion、Pycharm、WebStorm等)
2.1 右键项目的根目录,点击在文件中替换
2.2 输入要替换的内容
点击在文件中替换后,就会弹出以下界面
第一个输入框表示要匹配的特定内容,输入框右边有三个选项
- Cc选项表示是否区分大小写
- W选项表示是否完全匹配整个单词(开启完全匹配整个单词之后,如果搜索hand关键字,就不会搜索到handsome,也就是严格的同字数匹配)
- .*选项表示是否开启正则匹配
第二个输入框表示用于替换掉匹配到特定内容的文本
两个输入框的内容都填写完之后,点击替换全部
按钮,就能够批量替换项目下所有文件中的特定内容了
.*@since.*
正则表达式 .*@since.*
的含义如下:
.
:匹配除换行符之外的任意单个字符*
:表示前一个字符可以出现零次或多次@since
:这是一个固定的字符串,表示需要匹配的文本中包含 “@since”
这个正则表达式用于匹配任何包含 “@since” 这个字符串的文本。它不关心 “@since” 字符串前后是什么内容,只要文本中存在这个字符串,就会被匹配到。例如,以下文本都会被这个正则表达式匹配:
- “This feature was added @since version 1.0.”
- “Check the documentation @since it has been updated.”
- “@since the last update, several bugs were fixed.”
3. 解决替换一整行文本后出现空行的问题
还是以删除文件中的作者信息和文件的创建时间为例,如果我们使用正则替换一整行文本时,替换后会出现一个空行
替换前
替换后
有没有办法将空行也删除掉呢,当然有
我们只需要点击选项前面的换行符,在进行替换时就能够帮我们将换行符也删除掉了
替换前
替换后
4. 增加筛选条件提高匹配的精确度
在选择要替换的内容时,可以增加筛选条件提高匹配的精确度,例如
- 附加根据文件的后缀进行筛选(文件掩码)
- 附加根据特定内容所在的位置进行筛选(注释、在字符串字面量中、排除注释等)