优先用「编辑 → 行操作 → 移除空白行(包括空白字符)」,它是notepad++ 7.9+内置底层功能,不依赖正则、兼容utf-8 bom及unicode空白、不挑编码与换行符;若菜单缺失,再用正则^\s*$\r?\n并预览高亮。

Notepad++ 里批量删空白行,优先用「编辑 → 行操作 → 移除空白行(包括空白字符)」,它不依赖正则、不吃 BOM、不挑编码,7.9+ 版本默认可用。别先急着开 Ctrl+H 写正则。
为什么「移除空白行(包括空白字符)」比正则更稳
这个菜单项是 Notepad++ 7.9 起内置的底层行处理功能,不是调用正则引擎,所以:
• 不会因 UTF-8 BOM(\xEF\xBB\xBF)导致匹配失败
• 对 \u00A0(不换行空格)、\u200B(零宽空格)等 Unicode 空白也有识别能力
• 不受「. 匹配换行符」开关影响,也不怕 \R 或 \r?\n 写错
• 即使文件末尾没换行符,也能正确清理最后一行是否为空白
找不到菜单项?检查版本和安装包
如果「编辑 → 行操作」下只有「删除空行」而没有「移除空白行(包括空白字符)」:
• 打开 帮助 → 关于 Notepad++,确认版本 ≥ 7.9
• 极简版或某些第三方打包版可能阉割了该功能,建议重装官方完整版(notepad-plus-plus.org 下载)
• 不要启用 TextFX 插件来替代——它在含 BOM 的 UTF-8 文件中会误吞头三字节
必须用正则时,^\s*$\r?\n 是唯一推荐写法
当你要保留首尾单空行、或需合并连续空行为一个,才上正则。但务必注意:
• 查找目标填 ^\s*$\r?\n,不是 ^\s*$,也不是 ^\s*\r?\n——后者会漏掉纯 \n 的 Unix 空行
• 必须勾选「正则表达式」,且关闭「匹配大小写」和「全字匹配」
• 替换前先按 Ctrl + F 输入 ^\s*$(同样勾选正则),点「全部高亮显示」,看哪些行被标黄——这是防止误删的硬性步骤
• 大文件慎用「全部替换」:Notepad++ 对超大文本(>10MB)做全局正则替换时,Ctrl+Z 可能无法逐层撤回,建议先复制全文到新标签页备份
真正容易被忽略的点是换行符一致性。删完空白行后若粘连或跳行异常,点状态栏右下角看显示的是 DOS、UNIX 还是 MAC,再通过 编辑 → 文档格式转换 统一为当前系统常用格式——这不是删空行的步骤,但会影响后续 Git 提交、Python readlines() 解析或终端粘贴效果。











