import Foundation
let pattern = #"^1[3-4|6].*"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
13
13.1
13.1.1
13.1.2
13.1.2
13.1.3
13.2
13.2.1
13.2.2
13.2.3
13.3
13.3.1
13.4
13.4
13.4.1
13.4.1
13.5
13.5.1
13.6
13.6.1
13.7
14
14.0.1
14.1
14.2
14.2
14.2.1
14.3
14.4
14.4.1
14.4.2
14.5
14.5.1
14.6 Beta 3
14.6 RC
14.6 RC 2
14.6
14.7 Beta 1
14.7 Beta 2
14.7 Beta 3
14.7 Beta 4
14.7 Beta 5
14.7 RC
14.7
14.7.1
14.8
14.8.1
15.0 Beta 1
15.0 Beta 2
15.0 Beta 2
15.0 Beta 3
15.0 Beta 4
15.0 Beta 5
15.0 Beta 6
15.0 Beta 7
15.0 Beta 8
15.0 RC
15
15.1 Beta 1
15.1 Beta 2
15.0.1
15.1 Beta 3
15.0.2
15.1 Beta 4
15.1 RC 1
15.1 RC 2
15.1
15.2 Beta 1
15.2 Beta 2
15.2 Beta 3
15.1.1
15.2 Beta 4
15.2 RC
15.2 RC 2
15.2
15.3 Beta 1
15.2.1
15.3 Beta 2
15.3 RC
15.3
15.4 Beta 1
15.4 Beta 2
15.3.1
15.4 Beta 3
15.4 Beta 4
15.4 Beta 5
15.4 RC
15.4
15.4.1
15.5 Beta 1
15.5 Beta 2
15.5 Beta 3
15.5 Beta 4
15.5 RC
15.5
15.6 Beta 1
15.6 Beta 2
15.6 Beta 3
15.6 Beta 4
15.6 Beta 5
15.6 RC
15.6 RC 2
15.6
15.6.1
15.7 RC
15.7
15.7.1 RC
15.7.1
15.7.2 RC
16.0 Beta 1
16.0 Beta 2
16.0 Beta 3
16.0 Beta 3
16.0 Public Beta 1
16.0 Beta 4
16.0 Public Beta 2
16.0 Beta 5
16.0 Public Beta 3
16.0 Beta 6
16.0 Public Beta 4
16.0 Beta 7
16.0 Public Beta 5
16.0 Beta 8
16.0 Public Beta 6
16.0 RC
16
16.1 Beta 1
16.0.1
16.1 Public Beta 1
16.1 Beta 2
16.1 Public Beta 2
16.0.2
16.1 Beta 3
16.1 Public Beta 3
16.1 Beta 4
16.1 Public Beta 4
16.0.3
16.1 Beta 5
16.1 Public Beta 5
16.1 RC
16.1
16.2 Beta 1
16.2 Public Beta 1
16.2 Beta 2
16.1.1
16.2 Public Beta 2
16.2 Beta 3
16.2 Public Beta 3
16.2 (a)
16.2 (b)
16.1.2
16.2 Beta 4
16.2 RC
"""#
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