当前位置:编程学习 > C#/ASP.NET >>

请教下正则表达式图片替换问题..

string from = @"(../)+(([_a-zA-Z0-9-]+/{1})*([a-zA-Z0-9]{1,}\.(jpg|gif|png)))"; 
string to = @"http://www.anysite.com/images/$2"; 
string file = @" <img src=image/a.jpg/>sdf"; 

本来意思替换后为: 
http://www.anysite.com/images/image/a.jpg 

不过不知道为什么最后总是: 
<img src=imahttp://www.anysite.com/images/a.jpg/>sdf 
多出的 ima 三个字母不知道是怎么匹配上去的,而且我也限定必须有至少1个(../),结果还是匹配上了,所以请教各位高手指点下..谢谢 --------------------编程问答-------------------- lz用的是域名重写吗,可不可以只取后面的文件名?

string from = @"([a-zA-Z0-9]{1,}\.(jpg|gif|png))"; 

string to = @"http://www.anysite.com/images/$1"; 


--------------------编程问答-------------------- 搞那么多没用的捕获组做什么
string from = @"[^=/]+/([a-zA-Z0-9]+\.(?:jpg|gif|png))"; 
string to = @"http://www.anysite.com/images/$1"; 
string file = @" <img src=image/a.jpg/>sdf"; 


(../) .虽然能匹配除换行外的任意字符,但也只能是一个字符,所以这里一共匹配三个字符,也就是ge/,多出的 ima 三个字母是因为没匹配,所以保留下来了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,