正则表达式提取及替换html内容中的图片路径
现在在用一个winform中的html编辑器,当插入多张图片并储存到数据库后,因图片路径问题导致其它客户端打不开图片,我想在用户储存时先把图片上传到局域网文件服务器,然后再把html中的图片路径用上传后的路径替换,由于对正则表达式不甚了解,所以想求各位大侠们帮把手,谢谢了!
例如在html内容中有:<IMG title="a" alt="a" src="http://a0.att.hudong.com/35/40/0130000025s.jpg" >
<IMG title="a" alt="a" src="http://a0.att.hudong.com/35/40/0130000026s.jpg" >
<IMG title="a" alt="a" src="="G:\图片\001.jpg" >
查找并替换为:
<IMG title="a" alt="a" src="file://\\Server\public\soft\0130000025s.jpg" >
<IMG title="a" alt="a" src="file://\\Server\public\soft\0130000026s.jpg" >
<IMG title="a" alt="a" src="file://\\Server\public\soft\001.jpg" >
当然也许还有更多图片插入
[解决办法]
void Main(){ string html = @"<IMG title=""a"" alt=""a"" src=""http://a0.att.hudong.com/35/40/0130000025s.jpg"" ><IMG title=""a"" alt=""a"" src=""http://a0.att.hudong.com/35/40/0130000026s.jpg"" ><IMG title=""a"" alt=""a"" src=""G:\图片\001.jpg"" >";string path=@"file://\\Server\public\soft\";Regex reg=new Regex(@"(?i)(<img[^>]*?src=(['""\s]?))((http://)?.*)[/\\]([^\.\\]+\.[^'""]+)\2([^>]*?>)");html=reg.Replace(html,@"$1"+path+"$5$2$6");Console.WriteLine(html);}/*<IMG title="a" alt="a" src="file://\\Server\public\soft\0130000025s.jpg" ><IMG title="a" alt="a" src="file://\\Server\public\soft\0130000026s.jpg" ><IMG title="a" alt="a" src="file://\\Server\public\soft\001.jpg" >*/