ios - 删除两个或多个 '\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: "")
解决方案
为了只删除从三个到更多的匹配项,您应该将匹配模式从 更改[\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: "")
推荐阅读
- c++ - 在编译时检测 C++ 代码中的重复工作
- ios - Crashlytics 未记录存档构建的崩溃
- python - pandas.Series.explode 抛出 AttributeError
- c# - 如果在异步方法中使用,为什么 GetManifestResourceStream 返回 null?
- c# - Microsoft Azure 中的 IP 问题
- ngrx - 整个州或部分的 ngrx/实体
- python - 在张量流图中手动设置权重
- c# - WPF XAML 文本框插入符号位置在末尾
- laravel - 如何告诉`whereHas`查询子查询表在另一个数据库中(多租户)
- javascript - 黑客可以通过什么方式获取存储在客户端变量中的敏感信息?