读书人

怎么用正则替换img的SRC值

发布时间: 2012-11-09 10:18:48 作者: rapoo

如何用正则替换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);

读书人网 >asp.net

热点推荐