notepad++中匹配空行需用正则^[\ \t]*$,可捕获纯空行及仅含空格或tab的行;替换时须注意换行符一致性(如\r\n或\n),并勾选“匹配整个字符串”避免误匹配。

用正则表达式匹配空行 Notepad++ 本身不支持“查找空行并替换为某内容”一步到位,必须靠正则表达式精准定位。关键在于区分「真正空行」和「只含空白符的行」——后者常被忽略,但实际编辑中更常见。
空行在正则中对应 ^$(行首到行尾无字符),但默认不匹配仅含空格或制表符的行。要覆盖这类“视觉空行”,得用 ^[ \t]*$,其中 [ \t] 匹配空格或 Tab,* 表示零次或多次。
操作步骤:
- 打开「搜索 → 查找」(
Ctrl + F) - 切换到「查找模式」为「正则表达式」
- 在「查找目标」填入
^[ \t]*$ - 勾选「匹配整个字符串」(避免误匹配行中连续空白)
批量替换为空行加指定内容
替换不是简单填个字符串,要注意换行符一致性。Windows 默认用 \r\n,Linux/macOS 用 \n;Notepad++ 在替换时若用普通回车,会按当前文档格式自动适配,但显式写 \r\n 更可控。
例如:想把所有空行替换成 // TODO 并保留原位置,替换框填:// TODO\r\n。注意末尾的 \r\n 是必需的——否则新内容会挤在上一行末尾,而非独立成行。
常见错误:
- 忘记在替换内容末尾加
\r\n,导致所有插入内容连成一行 - 用
\n替换但文档是 Windows 格式,结果出现「黑方块」或换行异常 - 未勾选「匹配整个字符串」,导致
^[ \t]*$错误匹配到行首空格(如缩进代码行)
避免误伤注释行或空白缩进行
^[ \t]*$ 会匹配纯空白行,但如果你的代码里有带缩进的空行(比如函数体中间的分隔空行),它也会中招。这时候需要加排除逻辑。
比如只处理「前后都不是代码行」的空行(即上下行都非空),正则无法直接实现,但可以分两步:
- 先用
^(?!\s*//).+$手动确认非注释行范围(辅助定位) - 更实用的做法:先用「查找全部」查看命中的行号,人工跳过不想改的位置,再用「在下列位置中查找」限定范围
- 或者反向操作:先删除所有空行(替换为留空),再用「编辑 → 行操作 → 在每个选定行后插入行」补指定内容——适合小范围精确控制
保存前务必检查文档编码与换行符
替换后如果发现某些行没生效,大概率是文档用了 Unix 换行符(\n)但你在 Windows 下测试时习惯性输 \r\n。Notepad++ 底部状态栏会显示当前格式(如 Windows (CR LF) 或 Unix (LF))。
解决方法:
- 替换前先看右下角格式标识;不一致就「编辑 → 文档格式转换 → 转换为 XXX」
- 正则中的
$默认匹配行尾(含\r\n或\n),一般不用改;但若跨平台协作,建议统一用\R(Notepad++ 支持的通用换行符元字符)替代\r\n - 批量操作前先「Ctrl + Z」撤回测试一两次,比事后修复快得多











