Я хочу сопоставить шаблон ASA [az] [az] [0-9] [0-9] и заменить их встроенными гиперссылками http://www.stack.com? Order = ASA [az] [az] [0-9] [0-9] и отобразите его как ASA [az] [az] [0-9] [0-9]
Например: ASAsq96 или ASApt66
Перед заменой должны быть выполнены следующие условия
1. Шаблон не следует заменять, если он встречается в пределах любой ссылки href
<ahref="samplesample?=ASAsq96\%#');"</a>
2. Шаблон не следует заменять, если он встречается в любой http:// ссылке
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.Но шаблон следует заменить, если он существует только в определенной гиперссылке типа
http://replaceme/ASA[a-z][a-z][0-9][0-9]
4.Все другие существующие шаблоны снаружи должны быть заменены
Регулярное выражение здесь прекрасно удовлетворяет условиям 2 и 4 . Как я могу включить условия 1 и 3 в это регулярное выражение. Я использую тело HTML для обработки тела.
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>");