到GOOGLE上一找就一大堆。。
http://blog.csdn.net/laily/archive/2004/06/24/25872.aspx
http://blog.csdn.net/laily/archive/2004/06/24/25872.aspx
解决方案 »
- 求教,一个字符串生成二维数组的方法,急,谢谢!
- serialPort.Open()老出现异常,如何消除?
- 关于Asp.Net删除数据的问题!
- 怎么实现点击picturebox显示的图片后,新开一个IE窗口显示该图片
- 确认一下,msde的开发和SqlServer是否相同?
- PHP代码转C#代码 哪儿出错了?
- 写了个串口收发数据程序,收不到信息,一般会是哪些问题?
- .net WebForm读取显示图片本身
- c#加入进度条速度变慢
- vs2005(c#)+sql server2005开发WINFORM数据库管理系统的报表打印问题
- jmail 中关于 body 和 bodytext 的问题
- 如何查看dll文件中函数的声明?
把img 图像链接中 带有onclick等javascript事件之类的杂项去掉,只留下最基本的属性。如这一段:
<IMG alt='' src='http://......./4_394.jpg' border=0 onclick='javascript:if(this.width>screen.width-333)this.width=screen.width-333' dypop='按此在新窗口浏览图片'> 经过正则表达式过滤过后,应变成<IMG alt='' src='http://......./4_394.jpg' border=0>现在就是求这个 正则表达式如何写
imgstring="<img src=\"http://bbs.youhow.net/non-cgi/usr/4/4_394.jpg\" border=0>
得不到这样的值啊
string s = "<IMG alt='' src='http://......./4_394.jpg' border=0 onclick='javascript:if(this.width>screen.width-333)this.width=screen.width-333' dypop='按此在新窗口浏览图片'>";
s = Regex.Replace(s,@"<IMG\s+(((?<alt>alt=\S+)|(?<src>src=\S+)|(?<border>border=\S+)|\S*)\s*)*[^>]*>", "<IMG ${alt} ${src} ${border}>", RegexOptions.IgnoreCase);
ors = Regex.Replace(s,@"<IMG\s+(((?<alt>alt=('[^']*'|""[^""]*""|\S*))|(?<src>src=('[^']*'|""[^""]*""|\S*))|(?<border>border=('[^']*'|""[^""]*""|\S*))|\S*)\s*)*[^>]*>", "<IMG ${alt} ${src} ${border}>", RegexOptions.IgnoreCase);
Console.WriteLine(s);
思归老大:感谢你的帮助!不过刚才测试了一下,你的方法能让单个的<img >很完美的过滤掉其它杂项,可是只能过滤第一个啊,假如还有第二个<img .....>之类的,就会把后边的都给去掉了,要怎么改一下啊?
s = Regex.Replace(s,@"<IMG\s+(((?<alt>alt=('[^']*'|""[^""]*""|[^\s>]*))|(?<src>src=('[^']*'|""[^""]*""|[^\s>]*))|(?<border>border=('[^']*'|""[^""]*""|[^\s>]*))|(?<others>[^=<>]+=('[^']*'|""[^""]*""|[^\s>]*)))\s*)*[^>]*>", "<IMG ${alt} ${src} ${border}>", RegexOptions.IgnoreCase); Console.WriteLine(s);
可以先转成 DOM 结构的然后对其节点进行重新组合
比着画了一个
s= Regex.Replace(s,@"<A\s+(((?<title>title=('[^']*'|""[^""]*""|[^\s>]*))|(?<href>href=('[^']*'|""[^""]*""|[^\s>]*))|(?<target>target=('[^']*'|""[^""]*""|[^\s>]*))|(?<others>[^=<>]+=('[^']*'|""[^""]*""|[^\s>]*)))\s*)*[^>]*>", "<A ${title} ${href} ${target}>", RegexOptions.IgnoreCase);谢谢思归老大帮忙!
我是用这个来完成论坛发贴时处理来自粘贴其它处的网页的
http://www.chinasf.net/bbs