【IDEA】删除/替换文件中所有包含某个字符串的行

【IDEA】删除/替换文件中所有包含某个字符串的行_第1张图片

目录

前言

正则表达式

示例

使用方法


 

前言

在日常开发中,频繁地删除无用代码或清理空行是不可避免的操作。许多开发者希望找到一种高效的方式,避免手动选中代码再删除的繁琐过程。

使用正则表达式是处理字符串的一个非常有效的方法。

正则表达式

在正则表达式中,点号. 代表 “匹配除换行符之外的任意单个字符” 。比如字符a、数字1、符号#等,只要不是换行符,都能被.匹配。

星号* 是一个量词,表示 “前面的元素出现零次或多次” 。它必须和前面的字符、字符组或子表达式搭配使用。例如在a*中,就表示a这个字符可以不出现,也可以出现任意多次(1 次、2 次、n 次 )。

示例

假设现在我们的原代码如下,

import com.miui.cloudservice.cloudNewCase.CloudService_C10003694081_Test;
public class MyTest {
    private void testMethod() {
        CloudService_C10003694081_Test.run();
    }
}

我们想要在 IntelliJ IDEA 中删除所有包含字符串cloudNewCase的行。想要替换后的结果如下。

public class MyTest {
    private void testMethod() {
        CloudService_C10003694081_Test.run();
    }
}

那么,我们可以使用以下正则表达式,

^.*cloudNewCase.*$
  •  .* 表示匹配除换行符之外的任意长度的任意字符序列。也就是说,不管是空白字符、字母、数字还是符号组成的一段内容,它都能匹配。比如空字符串"" 、"hello" 、"123abc!@#" 等,都满足.* 的匹配规则。
  • 精确匹配字符串cloudNewCase ,要求字符完全一致,包括字母的大小写。只有当文本中出现cloudNewCase 这一完整的、大小写也完全相同的字符串时,才能满足这部分的匹配。
  • 第二个.* 和前面的.* 作用一样,继续匹配除换行符之外的任意长度的任意字符序列。

因此,.*cloudNewCase.* 这个正则表达式整体的意思是:匹配任意包含字符串cloudNewCase 的文本内容。它不关心cloudNewCase 之前和之后是什么字符,只要文本里有cloudNewCase 这个字符串就可以匹配上。例如"abccloudNewCasedef" 、"cloudNewCase" 、"123cloudNewCase456" 等文本都能被该正则表达式匹配。

使用方法

在IDEA中,打开一个文件,通过快捷键:Ctrl + R 或 ⌘ + R打开该文件的Replace对话框,然后勾选Regex(正则表达式)选项。

在Find字段中输入:^.*cloudNewCase.*$。Replace字段留空(直接删除整行)。

最后,点击Replace All或Replace逐个处理。

你可能感兴趣的:(IDEA,intellij-idea,java,ide,开发语言,文件)