notepad++批量清理空白需分三步:先用“删除尾部空白”清除行尾空格和制表符;再用正则^\s+清理行首空白;最后用“移除空白行(包括空白字符)”或正则^\s*$\r?\n删除伪空行,避免换行符混乱。

Notepad++ 里批量删空行和空格,不是靠一个操作通吃,而是分三步走:先清行尾、再削行首、最后去空行。错序或合并操作容易漏删、误删,甚至把换行符吃掉。
用「删除尾部空白」干掉每行末的空格和制表符
这是最安全的第一步,只动行尾,不动其他任何地方。它能精准清除每行末尾的 (空格)和\t(制表符),不碰行首、中间、空行本身,也不改换行符。
- 路径是:
编辑 → 行操作 → 删除尾部空白 - 如果右下角状态栏显示「只读」,命令会静默失败——必须先取消文件只读属性
- 对 UTF-8(含 BOM)、GBK、ANSI 编码都有效,但不处理 Unicode 零宽空格(如
\u200B) - 别手写正则搜
$加空格,那可能把\n也当空格删,导致所有行连成一串
用正则 ^\s+ 清理行首空白(不含空行)
行首空格/制表符得靠正则,但必须用^\s+,不能用^ +或^\s*——前者只认空格漏掉\t,后者*会匹配零长度,可能在空行上误触发。
- 打开
Ctrl + H→ 勾选「正则表达式」→ 查找目标填^\s+→ 替换为空 → 点「全部替换」 -
\s在 Notepad++ 正则里默认包含空格、\t、\f、\v,比手写[ \t]更全 - 空行不会被
^\s+命中,因为它们没有「非空白字符前的空白」,所以这步不影响空行结构 - 如果文件开头有 UTF-8 BOM(
\xEF\xBB\xBF),它不算\s,得单独搜\xEF\xBB\xBF替换为空再执行这步
用「移除空白行(包括空白字符)」终结伪空行
这是 Notepad++ 7.9+ 内置功能,也是唯一能安全清理“含空格、\t、\u00A0、BOM 后空格”的伪空行的方案。它不依赖正则,不破坏编码,不吞 BOM,也不改换行符。
- 路径是:
编辑 → 行操作 → 移除空白行(包括空白字符) - 如果菜单里没这个选项,说明你用的是极简版或插件被禁用——别装 TextFX,它在 UTF-8-BOM 文件里常吞掉
\uFEFF - 此时切正则方案:
^\s*$\r?\n(注意不是^\s+$或\r\n\r\n) - 正则操作前务必先用
Ctrl + F输^\s*$(同样勾选正则)→「全部高亮显示」,确认哪些行真会被删 - 删完建议打开
视图 → 显示符号 → 显示所有字符,检查是否还有残留¶或·
删完发现格式错乱?大概率是换行符混用了
「移除空白行」和正则替换都不自动统一换行格式。删完若出现段落粘连、Git 提交报 CRLF 警告、或 Python 里readlines()多出空字符串,基本就是 DOS(\r\n)、UNIX(\n)、MAC(\r) 混用所致。
- 看右下角状态栏显示的是「DOS」、「UNIX」还是「MAC」
- 统一格式请走:
编辑 → 文档格式转换 → 转为 XXX 格式 - 尤其注意:某些旧脚本或日志生成器会偷偷插入
\r,仅靠\r?\n无法覆盖,得手动查\r(?!\n)再处理











