正则表达式替换每行的空格
Regex replace spaces at each new lines
我将用户输入的数据保存为字符串,我想删除每行的所有空格。
来自用户的输入:
Hi!
My name is:
Bob
I am from the USA.
我想删除“Bob”之间的空格,所以结果将是:
Hi!
My name is:
Bob
I am from the USA.
我正在尝试使用以下代码
let regex = try! NSRegularExpression(pattern: "\n[\s]+", options: .caseInsensitive)
a = regex.stringByReplacingMatches(in: a, options: [], range: NSRange(0..<a.utf16.count), withTemplate: "\n")
但是这段代码替换了多个新行“\n”,我不想这样做。
在我 运行 上面的代码之后:"1\n\n\n 2"
-> "1\n2"
。我需要的结果:"1\n\n\n2"
(只删除空格,不删除新行)。
您可以使用
let regex = try! NSRegularExpression(pattern: "(?m)^\h+", options: .caseInsensitive)
实际上,由于模式中没有大小写字符,您可以删除 .caseInsensitive
并使用:
let regex = try! NSRegularExpression(pattern: "(?m)^\h+", options: [])
参见regex demo。该模式表示:
(?m)
- 开启多行模式
^
- 由于(?m)
,它匹配任何行开始位置
\h+
- 一个或多个水平空格。
Swift 代码示例:
let txt = "Hi!\n\nMy name is:\n Bob\n\nI am from the USA."
let regex = "(?m)^\h+"
print( txt.replacingOccurrences(of: regex, with: "", options: [.regularExpression]) )
输出:
Hi!
My name is:
Bob
I am from the USA.
无需正则表达式,将换行符上的字符串拆分为一个数组,然后 trim 所有行并再次将它们连接在一起[=13=]
let trimmed = string.components(separatedBy: .newlines)
.map { [=10=].trimmingCharacters(in: .whitespaces) }
.joined(separator: "\n")
或者您可以使用 reduce
let trimmed = string.components(separatedBy: .newlines)
.reduce(into: "") { [=11=] += "\(.trimmingCharacters(in: .whitespaces))\n"}
我将用户输入的数据保存为字符串,我想删除每行的所有空格。
来自用户的输入:
Hi!
My name is:
Bob
I am from the USA.
我想删除“Bob”之间的空格,所以结果将是:
Hi!
My name is:
Bob
I am from the USA.
我正在尝试使用以下代码
let regex = try! NSRegularExpression(pattern: "\n[\s]+", options: .caseInsensitive)
a = regex.stringByReplacingMatches(in: a, options: [], range: NSRange(0..<a.utf16.count), withTemplate: "\n")
但是这段代码替换了多个新行“\n”,我不想这样做。
在我 运行 上面的代码之后:"1\n\n\n 2"
-> "1\n2"
。我需要的结果:"1\n\n\n2"
(只删除空格,不删除新行)。
您可以使用
let regex = try! NSRegularExpression(pattern: "(?m)^\h+", options: .caseInsensitive)
实际上,由于模式中没有大小写字符,您可以删除 .caseInsensitive
并使用:
let regex = try! NSRegularExpression(pattern: "(?m)^\h+", options: [])
参见regex demo。该模式表示:
(?m)
- 开启多行模式^
- 由于(?m)
,它匹配任何行开始位置\h+
- 一个或多个水平空格。
Swift 代码示例:
let txt = "Hi!\n\nMy name is:\n Bob\n\nI am from the USA."
let regex = "(?m)^\h+"
print( txt.replacingOccurrences(of: regex, with: "", options: [.regularExpression]) )
输出:
Hi!
My name is:
Bob
I am from the USA.
无需正则表达式,将换行符上的字符串拆分为一个数组,然后 trim 所有行并再次将它们连接在一起[=13=]
let trimmed = string.components(separatedBy: .newlines)
.map { [=10=].trimmingCharacters(in: .whitespaces) }
.joined(separator: "\n")
或者您可以使用 reduce
let trimmed = string.components(separatedBy: .newlines)
.reduce(into: "") { [=11=] += "\(.trimmingCharacters(in: .whitespaces))\n"}