import Foundation
let pattern = #" · ?(.*)"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = ##"""
ТРК CITY MALL
Zaporizhzhia, Zaporizhia Oblast · 050 463 9113
Shopping Center Ukraine
# it's being captured as well
تطوان، المغرب · +212 669-599239
طنجة، المغرب · +212 5393-01148
طنجة، المغرب · +212 679-897627
Coffeyville, KS · (620) 251-3330
Independence, KS · (620) 331-7177
Bartlesville, OK · (918) 333-6060
Carrefour Guéret
Centre Commercial Auchan Domérat
Saint-Victor · 04 70 28 00 16
ТРК Сіті Мол
Запоріжжя, Запорізька область · 050 463 9113
Дніпро, Дніпропетровська область · 050 463 9114
Mühlhausen/Thüringen · 03601 815390
Nordhausen · 03631 600294
Laucha · 03622 900140
CinecittàDue
Roma RM · 06 8746 5219
Roma RM · 06 8746 2321
長野県上田市 · 0268-28-4551
長野県上田市 · 0268-42-1482
長野県松本市 · 0263-36-5258
Langham Place
Mong Kok · 2393 4246
Mong Kok · 2396 2415
Pärnu, Pärnu maakond · 522 6113
Rocca Al Mare Parking
Tallinn · 5561 7011
Silkeborg · 86 81 41 11
Viborg · 22 40 77 75
Viborg · 86 69 68 95
Pardubice · 724 372 891
Pardubice · 725 878 984
Osice · 725 752 422
"""##
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