当前位置: 代码迷 >> ASP.NET >> 怎么用正则替换img的SRC值
  详细解决方案

怎么用正则替换img的SRC值

热度:2254   发布时间:2013-02-25 00:00:00.0
如何用正则替换img的SRC值
今天写了一个新闻内容采集,在处理新闻内容里面的图片时,出现问题。
远程新闻内容的图片地址都是src="/images/news/xxxx.jpg" 这样的格式,我现在用
Regex imgsrc = new Regex(@"(?<=src="")[^""]+", RegexOptions.None)

Regex.Replace(reContent, regImg.ToString(), "http://www.xxx.com"+ k.Value.ToString(), RegexOptions.Compiled | RegexOptions.IgnoreCase);

我的意是把新闻内容里面的图片都加上一个网址http://www.xxx.com比如有三张图片
<img src="/images/news/xxxx1.jpg" />
<img src="/images/news/xxxx2.jpg" />
<img src="/images/news/xxxx3.jpg" />,
变成
<img src="http://www.xxx.com/images/news/xxxx1.jpg" />
<img src="http://www.xxx.com/images/news/xxxx2.jpg" />
<img src="http://www.xxx.com/images/news/xxxx3.jpg" />

但使用上面我写的方法后,新闻内容里面的图片都变成同一张图片了,
如何做才是我想要的内容。

------解决方案--------------------------------------------------------
C# code
        string s = @"<img src=""/images/news/xxxx1.jpg"" /><img src=""/images/news/xxxx2.jpg"" /><img src=""/images/news/xxxx3.jpg"" />";        string r = Regex.Replace(s, @"(?is)(?<=<img[^>]+src="").+?(?=""[^>]*/>)", "http://www.xxx.com$0");        Response.Write(Server.HtmlEncode(r));
------解决方案--------------------------------------------------------
Regex imgsrc = new Regex(@"(?<=src=")(?=/)", RegexOptions.None)

Regex.Replace(reContent, regImg.ToString(), "http://www.xxx.com",RegexOptions.Compiled | RegexOptions.IgnoreCase);

------解决方案--------------------------------------------------------
string s = @"<IMG src=""/images/news/xxxx1.jpg"">";
s = Regex.Replace(s, @"(?is)(?<=<IMG\ssrc="").*?[^>](?=/)", "http://www.xxx.com/images");
Console.WriteLine(s);
  相关解决方案