import Foundation
let pattern = #"^[0]{1}[12345689]{1}[0-9]{1}[0-9]{7}$"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
0112440767
0112575409
0112324846
0112434545
0112574651
0112421395
0112914215
0112447378
0112687141
0112431766
0114817240
0112810828
0112573296
0112580403
0112502437
0112449460
0112347856
0112421299
0112685633
0112575659
0112522545
0112330446
0112508512
0112692055
0112449631
0112336517
0112324924
0112335561
0112435306
0112436644
0112501030
0112522549
0112685773
0112686691
0112431174
0372238001
0112431405
0112432681
0112584173
0112584961
0112421464
0112320052
0112596747
0112324724
0112448612
0112433022
0112422473
0112338162
0112508100
0112438836
0112329161
0112440591
0112986417
0112435780
0372224138
0112431000
0112335836
0112301337
0112437936
0112334624
0112588884
0112432575
0112434683
0112589489
0372229141
0112503650
0112325225
0112330523
0112431531
0112434047
0112433495
0112325473
0112436311
0112323014
0112593973
0112582785
0112433286
0112502016
0112446699
0112816053
"""#
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