import Foundation
let pattern = #"\b([a-zA-Z]*)(ne|eb|ar|(?<!nom)br|il|ay|yo|un|nio|ul|lio|go|sto|ep|mbr|ct|ubr|ov|ic|en|ero|fe(?!cha)|ma|ab|ju|jo|ja|jn|ag|se|oc|nov|dic)([a-zA-Z]*)[- \/.,\n|i]{1,3}(0[1-9]|[12][0-9]|3[01]|[1-9]|i|o[1-9zi]|i[1-9zo])[- \/.,\n|i]{1,3}[2z][0o]\d{0,2}\b"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
Feb zi /
zozo
10
12030
nombre
fecha
01 / 2020
yl-20-2.020
FECHA: 2020-06-04 08:57:29
FECHA: 12 106 120
GARAG
marzo
15/2000
mayo 15/20
jul 1/20
Junio 17/20
S:
BUN
Centro Médico
FECHA:
05 06 - 2020
Warta carolina onerrez
Nombre:
1/6/200
ONDY Soklo
Fecha:
nFECHA: 2020-06-04 08:57:29
FECHA: 2020-06-04 08:57:2
Bogotá, 08/jun./2020
FECHA 11/06/2020
nBOGOTAOC - 10/06/2020
1/6/200
ONDY Soklo
Fecha:
echa 24-unio 12020
Fecha:
17.06.2020
FECHA:
2020
24 Junio
Fecha: 12 - vw
FECHA
VUNIO 18
18/2010
Jula 2020
FECHA:
05 06 - 2020
10 /m/ 200
2020
FECHA\nTo\nol06
\n18106 12020\n
204\nFecha:
"""#
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