You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则匹配单个换行符而非双换行符并替换为空格

解决办法

要只把单个换行换成空格、同时保留双换行的话,试试用正向+反向预查结合的正则,精准匹配那些“孤立”的换行符。

实用正则方案

不同工具里(比如Python、VS Code、记事本++)都能用这两种写法:

写法1:精准匹配单个换行

直接找前后都不是换行的单个换行:

(?<!\n)\n(?!\n)
  • (?<!\n):确保当前换行前面没别的换行
  • (?!\n):确保当前换行后面也没别的换行
    把匹配到的内容替换成空格就行。

写法2:兼容多连续换行的情况

如果文本里有三个及以上的连续换行,想统一保留成双换行的话,可以分两步来:

  1. 先把所有连续的多换行换成双换行:
\n{2,}

替换成\n\n
2. 再用第一种写法替换剩下的单个换行

举个例子

原始文本:

第一行
第二行

第三行
第四行

用第一种正则替换后,结果就变成:

第一行 第二行

第三行 第四行

为啥你之前的正则没用?

你之前写的(?!\n\n)\n{1}这类逻辑不对,(?!\n\n)只是检查当前位置后面不是双换行,但双换行里的第一个换行,后面是单个换行,依然会被这个正则匹配到,自然就破坏了双换行。

内容的提问来源于stack exchange,提问作者Crabgrass0899

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:21:38