前几天修改一个网站的布局的时候需要把简单的新闻列表修改为图文结合+新闻列表,不过这新闻的数据库非常简单,图片是在编辑器里面和HTML一起存入数据库中的content字段的,所以工作简化到从一个字符串里面获取图片的地址并输出。在HTML的图片标签一般如下格式所示:<img
src=”" alt=”" title=”" width=”" height=”"
/>,这就相当于编程中的一个结构体啊,里面的一个个属性就是切入点,不过.NET中还没有函数去完成这个操作,自己根据别人的思路写个类吧。
算法有两个,一是根据查找字符串中是否有<img
/>标签,如果有的话输出src=”"里面的地址;二是正则表达式,字符串中有满足正则的就输出src的值。前者经过实验效率不高并且程序总是出bug,后者简洁高效,是首选。
首先新建一个类:ImgHelper.cs,然后添加引用:using
System.Text.RegularExpressions;,然后添加下面的代码。
- class ImgHelper
- {
-
-
-
-
-
-
-
- public static ArrayList getImgUrl(string html, string regstr, string keyname)
- {
- ArrayList resultStr = new ArrayList();
- Regex r = new Regex(regstr, RegexOptions.IgnoreCase);
- MatchCollection mc = r.Matches(html);
-
- foreach (Match m in mc)
- {
- resultStr.Add(m.Groups[keyname].Value.ToLower());
- }
- if (resultStr.Count > 0)
- {
- return resultStr;
- }
- else
- {
-
- resultStr.Add("");
- return resultStr;
- }
- }
-
- }
在.aspx.cs文件中调用:
- Image1.ImageUrl =ImgHelper.getImgUrl("字符串",@"<IMG[^>]+src=\s*(?:‘(?<src>[^‘]+)‘|""(?<src>[^""]+)""|(?<src>[^>\s]+))\s*[^>]*>", "src")[0].ToString();
ASP.NET/C#获取文章中图片的地址,布布扣,bubuko.com
ASP.NET/C#获取文章中图片的地址
原文:http://www.cnblogs.com/q101301/p/3701865.html