import Foundation
let pattern = #"(.+?)(?<=href=")(.+?)(?=["│ ])"#
let regex = try! NSRegularExpression(pattern: pattern, options: .dotMatchesLineSeparators)
let testString = ##"""
Line 92: <a href="http://www.slsp.sk/chrante-svoje-peniaze-pred-podvodnikmi.html " style="display: block" target="_blank"><img alt="Upozornenie_chrante_svoje_peniaze_pred_podvodnikmi" border="0" src="/eb/img/10404_slsp_phising_banner_736x480-de.gif" width="100%"/></a>
Line 126: <td style="text-align: left"><a href="http://www.slsp.sk/Page/firemne_elektronicke_stel/sporotel.html " style="font-weight: bold; color: #00528e; text-decoration: none" target="_blank"><span>Sporotel</span> </a></td>
Line 132: <td style="text-align: left"><a class="sporotel" href="http://www.slsp.sk/sporocall.html" target="_blank"><span style="background: url(/eb/img/call.png) no-repeat 0px 0px">SporoCALL</span> </a></td>
Line 135: <td style="text-align: left"><a class="sporotel" href="https://chat.slsp.sk/website/slsp/account.jsp" target="_blank"><span style="background: url(/eb/img/chat.png) no-repeat 0px 0px">SporoCHAT</span> </a></td>
Line 138: <td style="text-align: left"><a class="sporotel" href="http://www.slsp.sk/Page/firemne_elektronicke_stel/sporotel.html" target="_blank"><span style="background: url(/eb/img/phone.png) no-repeat 0px 0px">0850 111 888</span> </a></td>
Line 141: <td style="text-align: left"><a class="sporotel" href="http://www.slsp.sk/Page/firemne_elektronicke_stel/sporotel.html" target="_blank"><span style="background: url(/eb/img/phone.png) no-repeat 0px 0px">0910 111 888</span> </a></td>
Line 144: <td style="text-align: left"><a class="sporotel" href="http://www.slsp.sk/Page/firemne_elektronicke_stel/sporotel.html" target="_blank"><span style="background: url(/eb/img/phone.png) no-repeat 0px 0px">0915 111 888</span> </a></td>
Line 2188: <img alt="" src="/eb/docs/img/img_button_chk_sportal.gif"/> Falls Ihre SW diese Dienstleistung unterstützt, können Sie sie ab sofort in Anspruch nehmen. Überprüfen Sie, ob auch Ihr Buchungssystem diese Dienstleistung unterstützt, ggfs. fragen Sie Ihren Lieferanten, ob er die Einführung eines solchen Datenaustausches vor hat. Die Liste der bereits heute die Databanking-DL unterstützender SW finden Sie <a href="http://www.slsp.sk/index.cfm?module=ActiveWeb&page=WebPage&s=firemne_databanking_software" target="_blank">hier</a>. </blockquote> <blockquote><img alt="" src="/eb/docs/img/img_9x9_Kontakt_Link-off_sportal.gif"/> Ihre Anfragen zum Thema sind an der Adresse<a href="mailto:databanking@slsp.sk">databanking@slsp.sk</a> jederzeit willkommen oder Sie kontaktieren uns mittels<a href="../contact/contactCons.do">Kontaktformular</a>... </blockquote></div>
Line 2188: <img alt="" src="/eb/docs/img/img_button_chk_sportal.gif"/> Falls Ihre SW diese Dienstleistung unterstützt, können Sie sie ab sofort in Anspruch nehmen. Überprüfen Sie, ob auch Ihr Buchungssystem diese Dienstleistung unterstützt, ggfs. fragen Sie Ihren Lieferanten, ob er die Einführung eines solchen Datenaustausches vor hat. Die Liste der bereits heute die Databanking-DL unterstützender SW finden Sie <a href="http://www.slsp.sk/index.cfm?module=ActiveWeb&page=WebPage&s=firemne_databanking_software" target="_blank">hier</a>. </blockquote> <blockquote><img alt="" src="/eb/docs/img/img_9x9_Kontakt_Link-off_sportal.gif"/> Ihre Anfragen zum Thema sind an der Adresse<a href="mailto:databanking@slsp.sk">databanking@slsp.sk</a> jederzeit willkommen oder Sie kontaktieren uns mittels<a href="../contact/contactCons.do">Kontaktformular</a>... </blockquote></div>
Line 2188: <img alt="" src="/eb/docs/img/img_button_chk_sportal.gif"/> Falls Ihre SW diese Dienstleistung unterstützt, können Sie sie ab sofort in Anspruch nehmen. Überprüfen Sie, ob auch Ihr Buchungssystem diese Dienstleistung unterstützt, ggfs. fragen Sie Ihren Lieferanten, ob er die Einführung eines solchen Datenaustausches vor hat. Die Liste der bereits heute die Databanking-DL unterstützender SW finden Sie <a href="http://www.slsp.sk/index.cfm?module=ActiveWeb&page=WebPage&s=firemne_databanking_software" target="_blank">hier</a>. </blockquote> <blockquote><img alt="" src="/eb/docs/img/img_9x9_Kontakt_Link-off_sportal.gif"/> Ihre Anfragen zum Thema sind an der Adresse<a href="mailto:databanking@slsp.sk">databanking@slsp.sk</a> jederzeit willkommen oder Sie kontaktieren uns mittels<a href="../contact/contactCons.do">Kontaktformular</a>... </blockquote></div>
Line 2292: <div class="infotext">Die AZV-Überweisungsaufträge sind an die SLSP, a.s. spästestens am Fälligkeistag, der durch die<a href="http://www.slsp.sk/vsetko-o-banke/uzitocne-informacie/dokumenty-na-stiahnutie/dolezite-informacie.html" target="_blank">Veröffentlichung bekannt gemacht ist, zuzustellen</a>.<br/>
Line 2361: <img src="/eb/docs/img/img_button_chk_sportal.gif"/> Falls Ihe SW diese Dienstleistung unterstützt, können Sie sie ab sofort in Anspruch nehmen. Überprüfen Sie, ob auch Ihr Buchungssystem diese Dienstleistung unterstützt, ggfs. fragen Sie Ihren Lieferanten, ob er die Einführung eines solchen Datenaustausches vor hat. Die Liste der bereits heute die Databanking-DL unterstützender SW finden Sie <a href="http://www.slsp.sk/index.cfm?module=ActiveWeb&page=WebPage&s=firemne_databanking_software" target="_blank">hier</a>
Line 2363: <blockquote><img src="/eb/docs/img/img_9x9_Kontakt_Link-off_sportal.gif"/> Ihre Anfragen zum Thema sind an der Adresse<a href="mailto:databanking@slsp.sk">databanking@slsp.sk</a>jederzeit willkommen oder Sie kontaktieren uns mittels<a href="../contact/contactCons.do">Kontaktformular</a>...
Line 2363: <blockquote><img src="/eb/docs/img/img_9x9_Kontakt_Link-off_sportal.gif"/> Ihre Anfragen zum Thema sind an der Adresse<a href="mailto:databanking@slsp.sk">databanking@slsp.sk</a>jederzeit willkommen oder Sie kontaktieren uns mittels<a href="../contact/contactCons.do">Kontaktformular</a>...
Line 2399: <img alt="" src="/eb/docs/img/img_button_chk_sportal.gif"/> Falls Ihre SW diese Dienstleistung unterstützt, können Sie sie ab sofort in Anspruch nehmen. Überprüfen Sie, ob auch Ihr Buchungssystem diese Dienstleistung unterstützt, ggfs. fragen Sie Ihren Lieferanten, ob er die Einführung eines solchen Datenaustausches vor hat. Die Liste der bereits heute die Databanking-DL unterstützender SW finden Sie <a href="http://www.slsp.sk/index.cfm?module=ActiveWeb&page=WebPage&s=firemne_databanking_software" target="_blank">hier</a> </blockquote><blockquote><img alt="" src="/eb/docs/img/img_9x9_Kontakt_Link-off_sportal.gif"/> Ihre Anfragen zum Thema sind an der Adresse<a href="mailto:databanking@slsp.sk">databanking@slsp.sk</a>jederzeit willkommen oder Sie kontaktieren uns mittels<a href="../contact/contactCons.do">Kontaktformular</a>... </blockquote></div>
Line 2399:
"""##
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