一个C#里面关于正则表达式的问题
关注网 http://www.51guanzhu.com/
关注网新闻 http://www.51guanzhu.com/list.asp?id=95
关注网娱乐 http://www.51guanzhu.com/list.asp?id=147
关注网女性 http://www.51guanzhu.com/list.asp?id=107
关注网汽车 http://www.51guanzhu.com/list.asp?id=102
关注财经 http://www.51guanzhu.com/list.asp?id=85
我现在需要把如下的一段文字中的文字分别加上超链接,对应关系就是上面所列出的对应关系; 但是不能替换 img标签里面 "alt="后面的内容. 内容如下:
<IMG alt="关注网" src="http://www.51guanzhu.com/images/logo.gif">关注网<br />
<img alt=关注新闻 src="http://www.51guanzhu.com/images/logo.gif">关注新闻<br />
<img alt="关注娱乐" src="http://www.51guanzhu.com/images/logo.gif">关注娱乐<br />
<img alt=关注女性 src="http://www.51guanzhu.com/images/logo.gif">关注女性<br />
<img alt=关注汽车 src="http://www.51guanzhu.com/images/logo.gif">关注汽车<br />
<img alt=关注财经 src="http://www.51guanzhu.com/images/logo.gif">关注财经<br />
替换后的内容为,如下:
<IMG alt="关注网" src="http://www.51guanzhu.com/images/logo.gif"><a href="http://www.51guanzhu.com/" target="_blank">关注网</a><br />
<img alt=关注新闻 src="http://www.51guanzhu.com/images/logo.gif"><a href="http://www.51guanzhu.com/list.asp?id=95" target="_blank">关注新闻</a><br />
<img alt="关注娱乐" src="http://www.51guanzhu.com/images/logo.gif"><a href="http://www.51guanzhu.com/list.asp?id=147" target="_blank">关注娱乐</a><br />
<img alt=关注女性 src="http://www.51guanzhu.com/images/logo.gif"><a href="http://www.51guanzhu.com/list.asp?id=107" target="_blank">关注女性</a><br />
<img alt=关注汽车 src="http://www.51guanzhu.com/images/logo.gif"><a href="http://www.51guanzhu.com/list.asp?id=102" target="_blank">关注汽车</a><br />
<img alt=关注财经 src="http://www.51guanzhu.com/images/logo.gif"><a href="http://www.51guanzhu.com/list.asp?id=85" target="_blank">关注财经</a><br />
请问各位,C#语言里面用正则表达式该如何实现呢?
先谢过...
看了两位的回答,我再补充一下:
图片的src 不一定都是 src="http://www.51guanzhu.com/images/logo.gif" 这样的,有可能是 src="http://www.51guanzhu.com/images/gif"也有可能是 http://www.51guanzhu.com/upfiles/200910/200910181416531.jpg 总之它是个活的.
说白了什么意思呢,就是替换新闻里面的关健字, 但是又不能替换像img标签里面的关健字呀, 问题是怎么排除标签里面的内容不被替换.
请大家再帮忙看下..谢过...
-----------------------------------------
回答一下yissyo 的提问:
是这样的, 从别的网站拷过的新闻、文章或者自已写的文章, 里面文字图片不是都有嘛. 我想要的是把文字中的关健字加上超链接, 而img 中的alt的内容不加超链接(当然也不能加,不然会出错), 文章里面图片src当是不固定的了.
请您再帮忙看下.谢谢. 我描术的可能不清楚,见谅.
--------------------------------
您说对了,第一块数据就是字典,麻烦您看一下可以用什么方法实现. 展开
简单~
string src =
@"关注网 http://www.51guanzhu.com/
关注网新闻 http://www.51guanzhu.com/list.asp?id=95
关注网娱乐 http://www.51guanzhu.com/list.asp?id=147
关注网女性 http://www.51guanzhu.com/list.asp?id=107
关注网汽车 http://www.51guanzhu.com/list.asp?id=102
关注财经 http://www.51guanzhu.com/list.asp?id=85";
File.WriteAllText(@"C:\a.html", (Regex.Replace(src, @"(.*) (.*)", "<img alt=\"$1\" src=\"http://www.51guanzhu.com/images/logo.gif\"><a href=\"$2\" target=\"_blank\">$1</a><br />", RegexOptions.None)), Encoding.UTF8);
=============
我在你的提问中发现三大块数据,请你表达清楚:
1、源数据是什么?
2、目标数据是什么?
3、<img中的src数据是从哪里来的?
怎么那么多人问题都问不清楚呢!
=============
你的意思是:
前两块数据相当于源数据,组合后得到最后一块数据是吧?
准确的讲,第一块数据相当于一个字典是吗?
如果是的,那这个就不是正则的问题了,大部分任务逻辑得通过程序来完成,正则表达式在其中发挥的作用就很小了。
除非你把前两块数据合并,还是有希望的。
=============
图片为解决方案。
注意:字典数据与第二块数据是不对应的:中间四条记录各差一个“网”字,这个需要先将字典数据整理好。