正则表达式删除空行_正则表达式批量删除文本空行技巧

正则表达式删除空行应使用 ^\s*$ 匹配含空白字符的纯空行并替换为空字符串;需启用多行模式,不同编辑器操作路径略有差异,命令行可用 sed '/^[[:space:]]*$/d'。

用正则表达式删除空行

,关键是匹配“只含换行符(或空白字符)的行”,并替换成空字符串。不同编辑器写法略有差异,但核心逻辑一致。

匹配纯空行(含空白字符)

很多看似“空”的行其实包含空格、制表符等不可见字符,直接匹配 ^\s*$ 更稳妥:

  • ^\s*$:^ 表示行首,\s* 匹配零个或多个空白字符(空格、制表符、换行符等),$ 表示行尾
  • 在支持多行模式的工具中(如 VS Code、Notepad++、Sublime Text),启用“正则”和“多行匹配”(通常叫 Match across lines^. and $ match at line breaks
  • 替换内容留空即可

只删真正空行(不含任何空白字符)

如果确定空行里连空格都没有,可用更严格的 ^$

  • ^$:仅匹配从行首直接到行尾、中间无任何字符的行
  • 注意:必须开启多行模式(否则 ^ 和 $ 只匹配整个文本首尾)
  • 适合清理日志或代码中明确的空行分隔,避免误删带缩进的空格行

保留段落间一个空行(去重空行)

有时需要压缩多个连续空行为单个空行,比如整理 Markdown 或邮件正文:

  • 查找:^\s*$(\r\n|\n|\r)(\s*$\r\n|\s*$\n|\s*$\r)*(较通用)
    或简化版:\r\n\r\n|\n\n(Windows/Linux 分别处理)
  • 更实用的写法(推荐):(\r\n|\n|\r)\s*(\r\n|\n|\r) → 替换为单个换行符(如 \n
  • 操作前建议先备份,避免误删结构化空行(如 ini 文件节之间)

常见编辑器实操提示

不同工具启用方式不同,容易卡在第一步:

  • VS Code:Ctrl+H → 点击 .* 图标(正则模式)→ 输入 ^\s*$ → 替换框留空 → Alt+Enter 全部替换
  • Notepad++:Ctrl+H → 勾选 “正则表达式” → 查找 ^\s*$ → 替换为空 → 点击“全部替换”
  • Sublime Text:Ctrl+H → 点击 .* 图标 → ^\s*$ → Replace All
  • 命令行(sed):sed '/^[[:space:]]*$/d' file.txt(Linux/macOS)