首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#中的条件正则问题

C#中的条件正则问题
EN

Stack Overflow用户
提问于 2011-07-08 16:02:34
回答 1查看 241关注 0票数 0

我想匹配ASAa-z0-9模式,并用嵌入式超链接http://www.stack.com?order=ASA[a-z][a-z][0-9][0-9替换它们,并将其显示为ASAa-z0-9。

例:ASAsq96ASApt66

更换前应满足下列条件

1.如果模式发生在任何href链接中,则不应替换该模式。

代码语言:javascript
运行
复制
<ahref="samplesample?=ASAsq96\%#');"</a>

2.如果模式发生在任何http://链接中,则不应替换该模式。

代码语言:javascript
运行
复制
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.但是,如果模式只存在于特定类型的超链接中,则应替换该模式。

代码语言:javascript
运行
复制
 http://replaceme/ASA[a-z][a-z][0-9][0-9] 

4.应取代现有的所有其他模式

这里的正则表达式完全满足条件2和4。如何将条件1和3合并到这个正则表达式中。我正在使用HTML来处理这个主体。

代码语言:javascript
运行
复制
mail.HTMLBody = Regex.Replace(mail.HTMLBody, 
"(?<!http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&amp;
\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?)
(ASA[a-z][a-z][0-9][0-9])(?!</a>)", 
"<a href=\"http://www.stack.com?order=$&\">$&</a>");
EN

Stack Overflow用户

发布于 2011-07-08 16:06:19

你为什么要把一堆不同的条件组合成一个正则表达式,有什么好的理由吗?对于每种情况我都会有一个单独的表达式。这将使您的模式(和逻辑)更加可读性。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6627171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档