import Foundation
let pattern = #"(84)2(38|7|96|54|09|04|91|16|06|75|15|18|7|9|3|56|5|71|74|90|14|9|13|36|6|61|8|63|51|77|0|69|19|73|97|93|4|6|39|5|8|37|59|34|1|60|1|05|70|35|55|08|03|59|76|10|57|11|07|33|99|94)(\d{7,8})"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
842926263007
842866598888
842072214668
842586504076
842736588235
842286544037
842466577226
842866739846
842156516668
842222210948
842106286816
842626338697
842086567555
842066562953
842606502439
842746294040
842462538003
842396542070
842422456111
"""#
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