import Foundation
let pattern = #"(?!<(script|code)[^>]*?>)((\s)(\?|\!|\;|\:))(?![^<]*?<\/(script|code)>)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive)
let testString = #"""
<h2>Déroulement de votre examen radiologique ?</h2>
<p>test De l’accueil dans nos locaux à la remise des résultats, toute l’équipe Radiolor, médecins radiologues, manipulateurs et secrétaires, reste à votre service et met tout en œuvre pour que votre temps d’attente soit 66 limité et que votre examen se déroule dans les meilleures conditions. Tous les gestes médicaux sont <a>réalisés dans les conditions d’hygiène strictes ; et : dans </a>le respect des bonnes pratiques.</p>
<p>À votre arrivée , nous vous remercions de passer par le secrétariat et de vous munir de votre ordonnance et de votre carte vitale !.<br />
N’oubliez pas vos anciens examens et <strong>respectez les consignes</strong> qui vous ont été transmises lors de votre prise de <code>rendez-vous : </code>prise de sang, éventuel produit de contraste ou d’infiltration prescrit ?.</p>
<!-- meta slider -->
test
</div>
<script type="text/javascript">
var timer_metaslider_144 = function() {
var slider = ;!window.jQuery ? window.setTimeout(timer_metaslider_144, 100) : !jQuery.isReady ? window.setTimeout(timer_metaslider_144, 1) : metaslider_144(window.jQuery);
};
timer_metaslider_144();
</script>
"""#
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