Je souhaite faire correspondre un motif ASA [az] [az] [0-9] [0-9] et les remplacer par des hyperliens intégrés http://www.stack.com?order=ASA [az] [az] [0-9] [0-9] et l'afficher comme ASA [az] [az] [0-9] [0-9]Problème Regex conditionnel en C#
les conditions suivantes doivent être remplies avant que le remplacement devrait se produire
1. modèle ne devrait pas être remplacée si elle se produit dans un lien href
<ahref="samplesample?=ASAsq96\%#');"</a>
2.Les modèle ne doit pas être remplacée si elle se produit dans une http: // lien
http://www.test.com/ASA[a-z][a-z][0-9][0-9]/example
http://www.stack.com/ASA[a-z][a-z][0-9][0-9]
3.But, le modèle doit être remplacé si elle existe seulement dans un lien hypertexte spécifique de type
http://replaceme/ASA[a-z][a-z][0-9][0-9]
4.Toutes autres modèles existants doivent être remplacés en dehors
Le regex ici parfaitement satisfait aux conditions 2 et 4. Comment puis-je intégrer les conditions 1 et 3 dans cette regex. J'utilise le corps HTML pour traiter le corps.
mail.HTMLBody = Regex.Replace(mail.HTMLBody,
"(?<!http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&
\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?)
(ASA[a-z][a-z][0-9][0-9])(?!</a>)",
"<a href=\"http://www.stack.com?order=$&\">$&</a>");
Je n'ai pas de raison particulière, mais j'ai besoin de toutes ces conditions avant que le remplacement puisse avoir lieu. Est-il possible de séparer ces conditions et de les exécuter? – thinkcool