import Foundation
let pattern = #"201410[0-3][0-9]"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
20141001
20141002
20141003
20141004
20141005
20141006
20141007
20141008
20141009
20141010
20141011
20141012
20141013
20141014
20141015
20141016
20141017
20141018
20141019
20141020
20141021
20141022
20141023
20141024
20141025
20141026
20141027
20141028
20141029
20141030
"""#
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