最直接有效的方式是用ctrl+j,它专为合并选中多行设计,不依赖换行符类型、不因空行或编码出错,选中后一按即用空格连接成一行,安全可控且无需正则匹配。

最直接有效的方式是用 Ctrl+J,不是正则替换,也不是手动删换行符。 它专为“把选中的多行拼成一行”设计,不挑换行符类型、不因空行或编码出错,只要选对范围,一按就生效。
为什么 Ctrl+J 比正则替换更快更稳
Ctrl+J 是 Notepad++ 内置的「行连接」操作,底层直接识别行边界,绕过所有换行符解析逻辑。它不依赖正则引擎,也不需要你判断当前文档用的是 \r\n 还是 \n——哪怕你刚从网页复制了一段混着 Unix 和 Windows 换行的文本,它照样能连。
- 必须先选中至少两行(含中间换行符),光标停在某处直接按
Ctrl+J无效 - 结果默认用单个空格分隔,比如两行
hello和world会变成hello world - 如果选中范围内有空行(即连续两个换行),
Ctrl+J会生成两个空格,后续需用查找 → 替换清理\s+为单个空格 - 它不会影响未选中的内容,也不会跨标签页生效,纯本地、可逆、无副作用
Ctrl+H 正则替换时换行符写错的典型表现
正则替换不是不能用,而是极易因换行符类型不匹配而“点了全部替换却没反应”。这不是功能坏了,是你写的模式没命中目标。
- 查
\r\n没效果?试试\n—— 文本可能来自 macOS 或 Linux 环境 - 替换后出现
^M符号?说明原文是\r\n,但你只写了\n,删掉了\n却留下孤立的\r - 部分换行被替换了,部分没动?文档混用了
\r\n和\n,得先统一行尾符:菜单编辑 → 文档格式转换 → 转换为 UNIX 格式或转换为 Windows 格式 - 想保留某些换行(比如只合并代码块内换行),就得用正则圈定范围,例如
(?s)function.*?\{.*?\}配合\R替换,而不是全局扫
合并后首尾或中间有多余空格怎么办
Ctrl+J 强制加空格,但实际场景中常需要逗号、制表符,甚至完全不留空格。这时不能靠 Ctrl+J 一步到位,得补一步处理。
- 若要逗号分隔:先
Ctrl+J,再Ctrl+H把空格替换成,(注意勾选「正则表达式」,查找,替换为,) - 若要去掉所有空格:用
Ctrl+H查找(一个空格),替换为空;或查\s+替换为(空字符串),但会连带删掉原有缩进和分隔符 - 若要保留单词间单空格、删掉首尾空格:先
Ctrl+H查^\s+|\s+$(开头或结尾空格),替换为空;再查\s{2,}替换为(一个空格) - 注意:
\s在 Notepad++ 正则里匹配空格、制表符、换行符,慎用,避免误删缩进
真正容易被忽略的不是操作步骤,而是“选中范围”的边界感——Ctrl+J 只处理你鼠标拖出来的那块,多拖一行或少拖一行,结果就差一个空格或漏掉关键换行。动手前花两秒确认选区,比事后修空格省十分钟。











