日期:2014-05-16  浏览次数:20424 次

asp.net自动加链接的问题,正则表达式
问题:把规定的关键词替换成固定的链接地址 http://www.test.com  
但是不能把img,a 中的关键词替换掉


测试关键字:设计 技能  


原始文字 (原始文字是用户录入的文章,所以不固定)
建筑设计,景观设计<img src="aaa建筑设计imyaafsdaada1.jpg" />建筑设计,景观设计建筑设计
<a href="/abc/a">建筑设计,景观设计</a>景观设计建筑技能培训


最终期望结果
建筑<a href="http://www.test.com">设计</a>,景观<a href="http://www.test.com">设计</a><img src="aaa建筑设计imyaafsdaada1.jpg" />建筑<a href="http://www.test.com">设计</a>,景观<a href="http://www.test.com">设计</a>建筑<a href="http://www.test.com">设计</a>
<a href="/abc/a">建筑设计,景观设计</a>景观<a href="http://www.test.com">设计</a>建筑<a href="http://www.test.com">技能</a>培训


多个关键字可以通过循环替换实现,我需要针对一个关键字的处理
------解决方案--------------------
html=Regex.Replace(html,@"(?<!(<img[^>]*?)
------解决方案--------------------
<a\b[^>]*?>[^<>]*?)(设计
------解决方案--------------------
技能)","<a href=\"http://www.test.com\">$2</a>");


结果:

建筑<a href="http://www.test.com">设计</a>,景观<a href="http://www.test.com">设计</a><img src="aaa建筑设计imyaafsdaada1.jpg" />建筑<a href="http://www.test.com">设计</a>,景观<a href="http://www.test.com">设计</a>建筑<a href="http://www.test.com">设计</a>
<a href="/abc/a">建筑设计,技能 景观设计</a>景观<a href="http://www.test.com">设计</a>建筑<a href="http://www.test.com">技能</a>培训