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

用正则表达式删除空行,关键是匹配“只含换行符(或空白字符)的行”,并替换成空字符串。不同编辑器写法略有差异,但核心逻辑一致。
匹配纯空行(含空白字符)
很多看似“空”的行其实包含空格、制表符等不可见字符,直接匹配 ^\s*$ 更稳妥:
- ^\s*$:^ 表示行首,\s* 匹配零个或多个空白字符(空格、制表符、换行符等),$ 表示行尾
- 在支持多行模式的工具中(如 VS Code、Notepad++、Sublime Text),启用“正则”和“多行匹配”(通常叫 Match across lines 或 ^. and $ match at line breaks)
- 替换内容留空即可
只删真正空行(不含任何空白字符)
如果确定空行里连空格都没有,可用更严格的 ^$:
JSON(JavaScript Object Notation) 定义:一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。有需要的朋友可以下载看看
- ^$:仅匹配从行首直接到行尾、中间无任何字符的行
- 注意:必须开启多行模式(否则 ^ 和 $ 只匹配整个文本首尾)
- 适合清理日志或代码中明确的空行分隔,避免误删带缩进的空格行
保留段落间一个空行(去重空行)
有时需要压缩多个连续空行为单个空行,比如整理 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)









