如何使用正则表达式删除字符串中间的新行

How to remove new lines in a middle of a string using regex

我想弄清楚如何用最多两个中断替换多个中断 (\n)。我用 trimmingCharacters(in:) 删除了字符串周围的所有白色 space 和新行,但我不知道如何删除字符串中的 space ,或者更确切地说:如何我可以将 2 个以上的休息时间替换为最多 2 个休息时间吗?

例如:

如果用户在 textView 中书写,单词之间有 spaces,则字符串将为:

"Hello






I like coffee"

我想要实现的字符串结果:

"Hello

I like coffee"

我通过使用以下正则表达式解决了这个问题:\n{2,500} 并将所有内容替换为 "\n\n"

一切正常!

extension String {
    func trimString() -> String {
        let pattern = "\n{2,500}"
        let regex = try! NSRegularExpression(pattern: pattern, options: .dotMatchesLineSeparators)
        let range = NSMakeRange(0, self.count)
        let trimmedString = regex.stringByReplacingMatches(in: self, options: .reportProgress, range: range, withTemplate: "\n\n")
        return trimmedString
    }
}

您可以直接对 String:

进行正则表达式替换
extension String {
    func trimString() -> String {
        return replacingOccurrences(of: "\n{3,}", with: "\n\n", options: .regularExpression)
    }
}

\n{3,} 模式匹配三个或更多换行符。