import Foundation
let pattern = #"^([A-Za-z./\-\(\=><) ]+:?\*?|^[A-Za-z./\-\(\=><)0-9 ]+:+?|^[A-Za-z0-9/\-\(]+)? *?(([0-9\*]+)(\.|\-)*([0-9\*]+)*)([a-zA-Z./% ]*) ?([0-9.\-= ]+)? ?(?![0-9]+)([a-zA-Z./% ]+)?$"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
Platelet Count : 297 10 ^ 3/c.mm150 - 450
Total T3 (Tri-iodothyronine) : 86.99 ng/dl 58 - 159
Bilirubin (Direct) SERUM 0.32 0 - 0.50 mg/dl
Total Cholesterol SERUM 180.00 0 - 200 mg/dl
Packed Cell Volume : 39.7 % 36.0 - 46.0
asd123
y Q P Age /Sex * 45Years / Female123asd
Blood Sugar Fasting PLASMA 92 70 - 105 mg/dl
Referred By : QUANTUM CORPORTAE HEALTH Age /Sex : 32 Years Male
Packed Cell Volume : 39.7 % 36.0 - 46.0
Platelet Count : 341 10 * 3/c.mm150 - 400
Uric Acid SERUM 8.42* 3.50-7.20 mg/dl
SERUM TOTAL CHOLESTEROL 180 mg/dl 123Desirable
ESR :* 22 mm / thr. 0-12
Haemoglobin - 12.4 gm % 12.0 - 15.0
Erythrocytes : 4.30 mill/c.mm 3.8 - 4.8
MCHC :* 31.4 g/dl 31.5 - 34.5
MPV :* 8.7 fl 9.0 - 13.0
Neutrophils - 62 % 40 - 80
Eosinophils 4-3 % 1-6
ABO And RhD Typing : A - positive
Poikilocytosis 5 *
Referred By : Quantum Corportae Health Pvt Ltd Ace Sen seme . Yeas. / Female
^([A-Za-z./\-\(\) ]+|^[A-Za-z0-9/\-\(]+) +([0-9.\-]+) *([a-zA-Z/%1 ]*) +([0-9./\-= ]+)* *([A-Za-z/]*)
^([A-Za-z./\-\(\=><) ]+|^[A-Za-z0-9/\-\(]+) *([0-9.\*-]+)([a-zA-Z./% ]*) +([0-9.\-= ]+)* *([A-Za-z/]*)
"""#
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