import Foundation
let pattern = #"<figure[^>]*>([\t\n\r\s]*)<figcaption[^>]*>(.*)<\/figcaption>([\t\n\r\s]*)<audio[^>]*>(([\t\n\r\s]|.)*)<\/audio>([\t\n\r\s]*)<\/figure>"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = ##"""
<!-- Une simple image -->
<figure>
<img
src="https://developer.mozilla.org/static/img/favicon144.png"
alt="Le logo de MDN.">
</figure>
<!-- Une image avec une légende -->
<figure>
<img
src="https://developer.mozilla.org/static/img/favicon144.png"
alt="Le logo de MDN.">
<figcaption>Logo MDN</figcaption>
</figure>
<figure>
<figcaption>Obtenir les détails du navigateur</figcaption>
<pre>
function NavigatorExample(){
let txt;
txt = "Nom de code: " + navigator.appCodeName;
txt += "Nom du navigateur : " + navigator.appName;
txt += "Version : " + navigator.appVersion ;
txt += "Cookies activés : " + navigator.cookieEnabled;
txt += "Plate-forme: " + navigator.platform;
txt += "En-tête d'agent utilisateur : " + navigator.userAgent;
console.log("NavigatorExample", txt);
}
</pre>
</figure>
<figure>
<figcaption>
<cite>Edsger Dijkstra : </cite>
</figcaption>
<p>« Si le débogage correspond au retrait de bogues,
alors la programmation correspond à l'ajout de bogues. »
</p>
</figure>
<figure style="display:table; margin:0 auto;">
<img loading="lazy" src="/public/illustrations/2021/.grole_u.jpg" alt="Grole abandonnée sur les rochers, août 2021" title="Grole abandonnée sur les rochers, août 2021" height="600" width="600" class="a42-ac-replace-img">
<figcaption>Grole abandonnée sur les rochers du petit port de Pen-Hors</figcaption>
</figure>
<figure style="display:table; margin:0 auto;">
<a href="#">
<img loading="lazy" src="/public/illustrations/2021/.grole_u.jpg" alt="Grole abandonnée sur les rochers, août 2021" title="Grole abandonnée sur les rochers, août 2021" height="600" width="600" class="a42-ac-replace-img">
</a>
<figcaption>Grole abandonnée sur les rochers du petit port de Pen-Hors</figcaption>
</figure>
<figure style="display:table; margin:0 auto;"><a href="#"><img loading="lazy" src="/public/illustrations/2021/.grole_u.jpg" alt="Grole abandonnée sur les rochers, août 2021" title="Grole abandonnée sur les rochers, août 2021" height="600" width="600" class="a42-ac-replace-img"></a><figcaption>Grole abandonnée sur les rochers du petit port de Pen-Hors</figcaption></figure>
<figure>
<figcaption>Listen to the T-Rex:</figcaption>
<audio
controls
src="/media/cc0-audio/t-rex-roar.mp3">
Your browser does not support the
<code>audio</code> element.
</audio>
</figure>
"""##
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #""#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
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