求一个正则表达式,根据img里的src值 来删除整个img标签

eniyi 2010-10-06 06:07:16
有这么个 <img style="width: 488px; height: 228px" height="215" src="http://static13.photo.sina.com.cn/bmiddle/4c0122eeg651d4364223c" width="460" align="right" />
只要src里的字符碰到一个字符串str="photo.sina", 就把整个 <img ~~~~~/>全部删除 请问正则表达式怎么写。
急!!!


没有足够的可用分在技术区发帖只能先发在这了
...全文
79 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
兔子党-督察 2010-10-07
回复
-过客- 2010-10-07
[Quote=引用 5 楼 q107770540 的回复:]
此处使用贪婪匹配确实不妥
[/Quote]

用贪婪模式也不是不可以,只不过效率高低要看源字符串情况而定,一般来说,不会有什么明显差别

string test = "<img src=\"test.jpg\"><img style=\"width: 488px; height: 228px\" height=\"215\" src=\"http://static13.photo.sina.com.cn/bmiddle/4c0122eeg651d4364223c\" width=\"460\" align=\"right\" /> ";
Regex reg = new Regex(@"(?is)<img\s(?:(?!src=)[^>])*src=""(?:(?!photo\.sina)[^>])*photo\.sina[^""]*""[^>]*>");
string result = reg.Replace(test, "");
richTextBox2.Text = result;
回复
兔子党-督察 2010-10-07
此处使用贪婪匹配确实不妥
回复
兔子-顾问 2010-10-06
q107770540
.*会导致匹配多的。比如
<img src="test.jpg"><img style="width: 488px; height: 228px" height="215" src="http://static13.photo.sina.com.cn/bmiddle/4c0122eeg651d4364223c" width="460" align="right" /> 
你会捕获整个这段的
回复
兔子-顾问 2010-10-06
string result = Regex.Replace(html,@"(?is)<img[^<>]*src=""[^<>""]*?photo.sina[^>]*>","");
回复
兔子党-督察 2010-10-06
string s=Regex.Replace(@"<img style=""width: 488px; height: 228px"" height=""215"" src=""http://static13.photo.sina.com.cn/bmiddle/4c0122eeg651d4364223c"" width=""460"" align=""right"" /> ",@"<img .*src="".*photo.sina.*"" .*/>","");
回复
兔子党-督察 2010-10-06
<img .*src=".*photo.sina.*" .*/>
回复
相关推荐
发帖
非技术区
创建于2007-09-28

7709

社区成员

.NET技术 非技术区
申请成为版主
帖子事件
创建了帖子
2010-10-06 06:07
社区公告
暂无公告