我有一个[string]类似
ABC,JKL,123,12,PQR
ABC,“ XY,Z”,654,54,PQR
结果数组应如下所示:
[“ ABC”,“ JKL”,“ 123”,“ 12”,PQR],[“ ABC”,“ XY,Z”,“ 654”,“ 54”,“ PQR”]
这是我已经尝试过的方法,但是在第二个元素的情况下,这并没有达到我想要的效果:
content.components(separatedBy: "\n").map{ $0.components(separatedBy: ",") }
答案 0 :(得分:0)
您希望在每次出现,
时将字符串拆分为一个数组,以将"
中包含的数据作为单个项目考虑。
为此,您必须将全局split
function与regex pattern一起使用。
extension String
{
func splitCommas() -> [Stirng] {
let pattern = ",(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*\$)" //regex pattern for commas that are not within quotes
if let regex = try? NSRegularExpression(pattern: pattern, options: []) {
let string = self as NSString
return regex.matches(in:inputString, range: NSMakeRange(0, inputString.utf16.count)).map {
string.substring(with: $0.range).replacingOccurrences(of: ",", with: "") //removing all instances of commas
}
}
return []
}
}
希望这会有所帮助! ;)
Updated code to more modern example.
还实现了作为String扩展的功能,以实现在所有String变量中的可用性。