import Foundation
let pattern = #"^(ACD|AOC|AML|AMR|AS|BDC|BDH|BDS|BDW|BFW|BOW|BRW|BWH|BWL|BWM|BWV|CAA|CAC|CAD|CAE|CAR|CAT|CDM|CDR|CFD|CHD|CKE|CO2|CS|CSS|CWR|CWS|DEW|DIS|DMW|DRS|DSW|DW|FG|FLO|FO|FPF|FWS|HC|HCS|HFL|HFO|HPS|HOS|HRG|HSO|HYD|IA|LCS|LFL|LFO|LO|LPS|LSO|MDA|MET|MPSNG|NGP|NI|NIL|OFS|OG|OWS|PA|PR|PRA|PW|QO|QW|REH|REL|RFG|SAN|SCA|SCC|SHC|SCL|SCM|SCO|SCP|SEG|SEO|SFL|SOG|SOW|SSW|SUL|SVV|SW|SWD|SWR|SWS|TFL|TRM|TRW|VNT|VPS)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
ACD
AOC
"""#
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