notepad++正则替换换行符前必须将搜索模式设为“正则表达式”,否则\n、\r等符号被当字面量处理;windows用\r\n或\r(7.9+推荐),需配合“.匹配新行”才能跨行匹配。

Notepad++正则替换换行符必须先确认右下角显示“正则表达式”
所有失败的换行替换,90% 都卡在这一步:右下角状态栏写着“普通”或“扩展”,但你却写了 \d、^、\R 这类正则符号。Notepad++ 不会报错,也不会提醒,它只是静默地按字面量去匹配——比如把 \n 当成反斜杠加字母 n 去找,当然找不到换行。
正确操作路径很短:
- 按
Ctrl + H打开替换框 - 盯住右下角状态栏,必须是「正则表达式」四个字(不是「普通」,也不是「扩展」)
- 如果不是,手动勾选「正则表达式」单选框(注意:是单选,别和「扩展」同时选)
- 关掉再重开一次对话框,再次确认——有些操作会悄悄重置模式
Windows文件用\r\n,新版推荐用\R,但得看版本和编码
\n 在 Notepad++ 正则模式里永远只匹配 LF(Unix 换行),不是通用换行符;\R 才是 PCRE 内置的“任意换行符”元字符,能自动识别 \r\n、\n、\r。但它在 Notepad++ 7.9+ 才完全可靠。
实操建议:
- 查当前文档换行类型:按
Ctrl + Shift + P(视图 → 显示符号 → 显示所有字符),看每行末尾是↵¶(CRLF,Windows)还是只有¶(LF,Unix) - 若确认是 Windows 文档,且版本较老(\r\n
- 若用
\R却没反应,先检查是否为 UTF-8 with BOM 编码——临时转成 UTF-8(无 BOM)再试 - 跨文件批量处理时,不同文件可能混用换行符,这时可写
\r\n|\r|\n,但注意老版本不支持|分支语法,慎用
合并多行时,空行会导致多余空格/逗号堆叠
想把日志或 SQL 多行压成一行,直接 \r\n → (空格)看似简单,但原文若有空行(即连续两个 \r\n\r\n),就会变成“内容 内容”,中间多出一个空格。
安全做法分两步:
- 先清理空行:
查找填\r\n\r\n,替换为填\r\n,点「全部替换」 - 再执行主替换:
查找填\r\n或\R,替换为按需填空格、逗号或留空 - 大文件(>10MB)别急着「全部替换」,先点「查找全部」看命中行数,避免卡死或丢内容
跨行匹配必须显式写换行符,. 默认不跨行
想用正则匹配块注释 /* ... */ 或函数体 { ... },别指望 /\*.*?\*/ 自动跨行——PCRE 默认关闭单行模式(s flag),. 不匹配 \r 和 \n。
正确写法要“手动接住换行”:
- 启用「. 匹配新行」复选框(在替换框底部),再写
/\*.*?\*/,才可能生效 - 更可控的方式是显式插入换行符:
/\*.*?\R.*?\*/(中间用\R),或\{\R.*?\R\} - 别依赖
^和$定位跨行结构,它们只认单行首尾;改用上下文特征,比如\R\{或\}\R -
Ctrl + Shift + H(在文件中替换)不会继承Ctrl + Shift + F的上下文,每次都要重写\R
换行符替换看着是小操作,实际是编辑器底层行结束符理解、文档真实编码、搜索模式三者咬合的结果。任何一个环节错位,都会导致“明明写了正则,却没变化”。最省时间的做法,永远是先按 Ctrl + Shift + P 看一眼真实换行符长什么样,再动手。











