如何使用正则表达式删除字符串中间的新行
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,}
模式匹配三个或更多换行符。
我想弄清楚如何用最多两个中断替换多个中断 (\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,}
模式匹配三个或更多换行符。