import Foundation
// WARNING: You included a flag that Swift doesn't support: u
// When this flag is set, it makes the pattern and subject strings to be treated as unicode.
// Swift already treats the pattern and subject strings as unicode by default, so including this flag is redundant.
let pattern = #"(?m)^(.+?),"(.+?)","([^,]+)","#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
Title,Des,Description,价格,原价,SKU,库存,产品类别,供应商,产品系列,SEO标题,SEO描述
Pendientes Olivia,"El verde es uno de los colores más nobles en la joyería alta, este par de hermosos pendientes con un cristal de color verde esmeralda resalta tu elegancia, imprescindible para poder lucir tus joyas","Pendientes de Plata de Ley 925
Acabado: Baño en Oro de 14k
Alto: 2.6cm
Sistema de cierre: Tuerca tradicional
Peso: 2.1g",14.95,,PE10004AU,100,Pendientes,Vltana,Pendientes,Comprar pendientes Olivia en Vltana,Pendientes Olivia Descubre nuestro modelo de pendientes de plata de diseño y calidad. Consigue la Última Novedad de Vltana. Compra de forma segura y hazte con este Best Seller. Envíos Gratis desde 30€.
Pendientes Bagan,"Un interior de color blanco perlado y un marco irregular dorado, se han creado una combinación inesperada. Su textura suave y fina presenta un estilo clásico y elegante. La sencillez y su naturaleza acaban siendo una pieza irremplazable.","Pendientes de Plata de Ley 925
Acabado: Baño en Oro de 18k
Largo: 1.3cm
Sistema de cierre: Tuerca tradicional
Peso: 0.9g",19.95,,PE10005AU,50,Pendientes,Vltana,Pendientes,Comprar pendientes Bagan en Vltana,Pendientes Bagan Descubre nuestro modelo de pendientes de plata de diseño y calidad. Consigue la Última Novedad de Vltana. Compra de forma segura y hazte con este Best Seller. Envíos Gratis desde 30€.
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let matches = regex.matches(in: testString, range: stringRange)
var result: [[String]] = []
for match in matches {
var groups: [String] = []
for rangeIndex in 1 ..< match.numberOfRanges {
let nsRange = match.range(at: rangeIndex)
guard !NSEqualRanges(nsRange, NSMakeRange(NSNotFound, 0)) else { continue }
let string = (testString as NSString).substring(with: nsRange)
groups.append(string)
}
if !groups.isEmpty {
result.append(groups)
}
}
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression