import Foundation
let pattern = #"^Caín Daniel Romano Sánchez 35 Masculino (Ecuador) San Pablo de Manta."#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
Caín Daniel Romano Sánchez 35 Masculino Ecuador San Pablo de Manta
Darío Cristiano Hernandez Martinez 15 Masculino Bolivia Sacaba
Emily Alessia Bianco Sutori 15 Femenino Francia Burdeos
Luis Hilario Hamasaki Schneider 57 Masculino Francia Arles
Valentin Roberto Rodriguez Rinaldi 43 Masculino Ecuador Santiago de Guayaquil
Ruby Olivia Johnson Gutierrez 38 Femenino Bolivia Sucre
Khushi Florence López Messina 50 Femenino Francia París
Tiburcio Pacifico Feraud Brown 23 Masculino Brasil Rio de Janeiro
Carla Martina Santoro Fernandez 9 Femenino Bolivia Guayaramerín
Emma Antonella Williams Himura 43 Femenino Ecuador San Pedro de Riobamba
"""#
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