import Foundation
let pattern = #"(?=Bank)(.*)(?<=IBAN)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"Hurtigruta Carglass AS\r\n1(1)\r\n(Ensjøvn. 17)\r\nPOSTBOKS 6452 ETTERSTAD\r\n0605 OSLO\r\nForetaksregisteret NO 985758220 MVA\r\nKunde 100454 Avdeling Alnabru\r\nBank\r\n4202 33 70055\r\nTRYG FORSIKRING\r\nIBAN NO77 4202 3370 055\r\nPostboks 7070\r\nSWIFT SPTRNO22\r\n5020 BERGEN\r\nTlf 98709500\r\nFax 22 70 76 01\r\nregnskap@hurtigruta.no\r\nDeres referanse\r\nwww.hurtigruta.no\r\nFAKTURA 14780866\r\nFakturadato 08.06.2019 Skadedato 07.06.2019\r\nForfallsdato 08.07.2019 Reg.nr. EK71995 Vår referanse Avdeling Alnabru\r\nKID147808661\r\nLeveringsdato 07.06.2019 Kundens ordrenr\r\n0000456218\r\nVarenr Varetekst Antall Pris % Sum\r\nRep av frontrute\r\n50 REP-1 1,0 STK 650,00 650,00\r\nm.v.a. av kr 650,00 162,50\r\nTotalsum: 812,50\r\nAvrunding 0,50\r\nSum å betale: 813,00\r\nBankkontonummer: 4202 33 70055\r\nBiler med fradragsrett for merverdiavgift, skal svare denne avgiften i tillegg til en eventuell egenandel.\r\nFor disse bilene dekker forsikringsselskapet kun netto faktura"#
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