Bonjour à tous,

J'ai un texte au format html en entrée contenant divers liens <a href=""></a>. Le format peut être différent dans le sens où href peut être le deuxième paramètre de a. Ainsi qu'il ne faut pas que ce soit sensible à la casse.

J'essaie actuellement d'ajouter sur tous les liens dont le href ne commence pas par "mailto:" ou "tel:"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<a href="tel:+3300000000">+3300000000</a> // Ne doit pas contenir le target="_blank"
<a href="mailto:toto@tata.com">toto</a> // Ne doit pas contenir le target="_blank"
<a href="http://salut.com">salut</a> // Doit contenir le target="_blank"
<a href="../index">salut</a> // Doit contenir le target="_blank"
Voici mon code actuellement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
html = Regex.Replace(html,
              @"<(a)((?!.*mailto:).*[^>]+)>",
              "<$1 target=\"_blank\"$2>",
              RegexOptions.IgnoreCase | RegexOptions.Compiled);
Je n'arrive pas à faire de OU. J'ai essayé plusieurs solutions avec [..|..] et autres sans aucun succès.

Merci par avance !