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

如何用正则表达式将字符串中多个换行替换为最多2个?

处理字符串内部连续多换行符为最多2个的方法

嘿,这个需求其实用正则表达式就能轻松搞定!你已经用trimmingCharacters(in: .whitespacesAndNewlines)处理了首尾的空白和换行,现在只需要针对字符串内部连续的多个换行做替换就行。

核心思路

用正则匹配连续3个及以上的换行符,然后统一替换成2个换行符。这种方法简洁高效,不需要复杂的循环处理。

基础实现代码

// 示例原字符串(包含多个连续换行)
var originalString = "Hello\n\n\nI like coffee\n\n\n\n"

// 第一步:移除首尾的空白字符与换行符
let trimmedString = originalString.trimmingCharacters(in: .whitespacesAndNewlines)

// 第二步:将连续3个及以上的换行替换为2个换行
let resultString = trimmedString.replacingOccurrences(of: "\\n{3,}", with: "\n\n", options: .regularExpression)

print(resultString)
// 输出结果:
// Hello
//
// I like coffee
//

兼容不同换行符的扩展(比如Windows的\r\n)

如果你的场景可能遇到Windows风格的换行符(\r\n),可以调整正则表达式,同时匹配\n和\r\n:

let resultString = trimmedString.replacingOccurrences(of: "(\\r?\\n){3,}", with: "\n\n", options: .regularExpression)

这里的(\r?\n)表示匹配可选的回车符+换行符,{3,}表示连续出现3次及以上,这样不管是哪种换行格式都能处理。

代码解释

  • \\n{3,}:正则表达式,匹配连续3个或更多的\n换行符(Swift中字符串需要双反斜杠转义)
  • replacingOccurrences(of:with:options:):Swift字符串的替换方法,指定.regularExpression选项后,会按照正则规则匹配替换
  • 先做首尾修剪再处理内部换行,避免替换后首尾出现多余的换行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:03:21