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

求助:正则表达式替换含空格间隔的连续多次换行

解决含空白间隔的连续换行合并问题

嘿,这个场景我之前处理过,你的原正则只覆盖了纯连续换行的情况,要处理换行之间夹杂空格(或其他空白字符)的情况,只需要在换行单元前后加上匹配空白的规则就行!

调整后的正则表达式

Regex.Replace(str, @"(?:\s*(?:\r\n|\r(?!\n)|(?!<\r)\n)){2,}\s*", Environment.NewLine)

为什么这么改?

我来拆解下关键调整点:

  • \s*:匹配任意数量的空白字符(包括空格、制表符、换页符等,如果你只想限定空格,把\s换成单个空格 就行)
  • 保留了你原有的换行单元(?:\r\n|\r(?!\n)|(?!<\r)\n),确保兼容Windows、Mac、Unix三种主流换行格式
  • {2,}:要求这种「空白+换行单元」的组合出现2次及以上,也就是至少两个换行(不管中间夹多少空白)
  • 最后的\s*:匹配最后一个换行后面可能残留的空白,确保这些多余空白也被一起替换掉

测试场景验证

  • 原场景"\r\n\r\n":依然会被匹配,替换为单个换行
  • 你的目标场景"\r\n \r\n \r\n":会被整个匹配,替换为单个换行
  • 混合场景"\r \n \r\n":同样会被合并成单个换行

如果有其他特殊需求(比如只允许空格不允许制表符),直接把\s替换成 就可以啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:02:47