首页 > 解决方案 > 删除两个或多个 '\r' '\n'

问题描述

如何在字符串中将两次以上的\r&替换为一次?\n

如果样本字符串是 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec blandit magna et quam maximus elementum et id ex.\r\n Donec luctus massa ut sapien consectetur blandit. Maecenas vehicula ex odio, eu sollicitudin felis vehicula sed. \nPhasellus hendrerit neque volutpat urna fermentum, eget cursus erat finibus. \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

不应删除单个或两个事件。

试过这段代码

let regex = try! NSRegularExpression(pattern: "[\r\n]+", options: NSRegularExpression.Options.caseInsensitive)
let range = NSMakeRange(0, sampleString.count)
let modString = regex.stringByReplacingMatches(in: sampleString, options: [], range: range, withTemplate: "")

标签: iosswiftstring

解决方案


为了只删除从三个到更多的匹配项,您应该将匹配模式从 更改[\r\n]+(\r\n){3,}

所以上面的代码应该变成

let regex = try! NSRegularExpression(pattern: "(\r\n){3,}", options: NSRegularExpression.Options.caseInsensitive)
let range = NSMakeRange(0, sampleString.count)
let modString = regex.stringByReplacingMatches(in: sampleString, options: [], range: range, withTemplate: "")

推荐阅读