日期:2014-05-17  浏览次数:20379 次

关键字替换链接
现在一个文章系统,有一个关键字表,然后在发布的时候根据这个表进行关键字替换,现在替换的时候有几个问题想请教下:

1.关键字在<img alt='关键字' />,在这里面的时候就不替换,直接跳过要怎么实现

2.关键字在<a href='' title='关键字'>关键字</a>的时候也直接跳过

要不然的话一替换就全部乱掉了,希望各位帮忙解决下啊,谢谢啦!

------解决方案--------------------
都跳过 了 那还替换啥?
告诉我什么情况不跳过?
------解决方案--------------------
问题表达的不太清楚
------解决方案--------------------
把代码发上来看看
------解决方案--------------------
探讨
是不是大家都下班啦,帮忙啊

------解决方案--------------------
是不是要用很复杂的正则吧
------解决方案--------------------
这个问题以前也有很多人讨论过.用正则还是有局限性.特别是一些html不规则的时候,没有闭合呀等等
------解决方案--------------------
找到答案了,LZ,试试看吧

C# code

string test = @"<a href=""http://中国.com"" title=""我爱中国"">虽然我在新加坡长大,但我是中国人 </a> 
<div title=""中国的美"">伟大的中国 </div>";
string result = Regex.Replace(test, @"(?<=^|</a>|<(?!/?a)[^>]*>)[^<>]*?(?=<a[^>]*>|<(?!/?a)[^>]*>|$)", delegate(Match m) { return m.Value.Replace("中国", @"<a href=""www.china.net"">中国</a>"); }, RegexOptions.IgnoreCase);
richTextBox2.Text = result;