import Foundation
let pattern = #"master(\D){0,30} informatique|master [2] (\D){0,3}informatique"#
let regex = try! NSRegularExpression(pattern: pattern, options: [.anchorsMatchLines, .caseInsensitive])
let testString = #"""
Master Informatique
master en informatique
Master Spécialité informatique
master spécialisé en informatique
(master) spécialisée en informatique
master, en électronique ou en informatique
Master en Electronique ou Informatique
Master) avec une spécialisation en informatique
Master, MIAGE...), une expérience en informatique
Master en ingénierie - spécialité en Informatique
master, en électronique ou en informatique
master II en informatique
(Master II) en Informatique
master II, informatique
Master Data / Informatique
Master MIAGE ou Informatique
master 2 en informatique
Master 2 informatique
Master), de préférence dans l’informatique
Master RH, Informatique
"""#
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