我想匹配ASAa-z0-9模式,并用嵌入式超链接http://www.stack.com?order=ASA[a-z][a-z][0-9][0-9替换它们,并将其显示为ASAa-z0-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>");发布于 2011-07-08 16:06:19
你为什么要把一堆不同的条件组合成一个正则表达式,有什么好的理由吗?对于每种情况我都会有一个单独的表达式。这将使您的模式(和逻辑)更加可读性。
https://stackoverflow.com/questions/6627171
复制相似问题