最稳最快的方式是用菜单「编辑 → 行操作 → 移除空白行(包括空白字符)」,它不依赖正则、兼容所有编码和换行符,适用于95%日常场景;而「移除空行」仅删纯空行,易被混淆。

最稳、最快、最不容易出错的方式,是用菜单命令「编辑 → 行操作 → 移除空白行(包括空白字符)」——它不依赖正则、不挑编码、不会误吞换行符,95% 的日常场景直接点一下就完事。
为什么不用「删除空行」菜单项?
Notepad++ 菜单里有两个名字相近的选项:
- 「移除空行」:只删纯空行(即内容仅为
\r\n或\n的行) - 「移除空白行(包括空白字符)」:删掉所有“视觉上为空”的行,含空格、
\t、BOM 后空白等
多数人真正想删的是后者。但新版 Notepad++(7.9+)默认把带括号的完整名称折叠显示为「移除空白行」,容易被当成同义项跳过。务必鼠标悬停确认完整文字,或进 Settings → Shortcut Mapper → Main menu 查看绑定项名称。
正则替换必须写对的三个关键点
如果菜单项缺失(比如极简版、插件被禁),才切正则方案。但网上流传的 ^\s+ 或 ^\s*\n 都有缺陷:
-
^\s+不匹配纯空行(没空白字符,只有换行符),会漏删 -
^\s*\n在 Unix 换行(\n)下正常,但在 Windows(\r\n)下会漏掉\r,导致残留\r字符 - 正确写法是:
^\s*$\r?\n——$锚定行尾,\r?\n兼容两种换行,\s*吞掉所有空白(含 BOM 中的不可见字节)
注意:勾选「正则表达式」后,别碰「匹配大小写」和「全字匹配」,这两项对 ^ 和 $ 有干扰。
删之前一定要做的两件事
正则替换是全局不可逆操作,尤其文本超大时 Ctrl + Z 可能无法逐层撤回:
- 先按
Ctrl + F,输入^\s*$(同样勾选正则),点「全部高亮显示」——被标黄的行就是将被删除的行,肉眼确认无误再动手 - 重要文件务必先
Ctrl + A→Ctrl + C,粘贴到新标签页备用;别在未保存的 FTP 连接中直接操作,网络卡顿可能让「全部替换」中途失效且无提示
删完发现格式乱了?先看状态栏换行符
空行删完,段落粘连或跳行异常,大概率不是删错了,而是换行符类型混了:
- 点 Notepad++ 窗口右下角,看显示的是
DOS、UNIX还是MAC - 统一格式:菜单
编辑 → 文档格式转换 → 转为 UNIX 格式(推荐,兼容性最好)或转为 DOS 格式(Windows 命令行友好) - 这步不解决空行问题,但能避免后续复制进终端、Git 提交、Python
readlines()时出现诡异换行错误
真正难的从来不是“怎么删”,而是“该留哪几行”——比如日志里需要保留分隔用的单空行,那就得改用 (\r?\n)\s*(\r?\n) 这类带捕获组的正则,而不是一键清空。











