下面是字符串s
"Hi! How are you? I'm fine. It is 6 p.m. Thank you! That's it."
我希望将它们分隔到一个数组中,如下所示:
["Hi", "How are you", "I'm fine", "It is 6 p.m", "Thank you", "That's it"]
这意味着分隔符应该是". "
+ "? "
+ "! "
我试过了:
let charSet = NSCharacterSet(charactersInString: ".?!")
let array = s.componentsSeparatedByCharactersInSet(charSet)
但它也会将p.m.
分成两个元素。结果:
["Hi", " How are you", " I'm fine", " It is 6 p", "m", " Thank you", " That's it"]
我也试过
let array = s.componentsSeparatedByString(". ")
它可以很好地分离". "
,但是如果我还想分离"? "
和"! "
,它就会变得混乱。
所以我有办法做到吗?谢谢!
发布于 2019-04-01 06:46:36
如果拆分基础是比句子更深奥的东西,这个扩展可能会起作用。
extension String {
public func components(separatedBy separators: [String]) -> [String] {
var output: [String] = [self]
for separator in separators {
output = output.flatMap { $0.components(separatedBy: separator) }
}
return output.map { $0.trimmingCharacters(in: .whitespaces)}
}
}
let artists = "Rihanna, featuring Calvin Harris".components(separated by: [", with", ", featuring"])
https://stackoverflow.com/questions/34247316
复制相似问题