今天写了一个新闻内容采集,在处理新闻内容里面的图片时,出现问题。
远程新闻内容的图片地址都是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);