ASP.NET/C#获取文章中图片的地址

前几天修改一个网站的布局的时候需要把简单的新闻列表修改为图文结合+新闻列表,不过这新闻的数据库非常简单,图片是在编辑器里面和HTML一起存入数据库中的content字段的,所以工作简化到从一个字符串里面获取图片的地址并输出。在HTML的图片标签一般如下格式所示:<img src=”" alt=”" title=”" width=”" height=”" />,这就相当于编程中的一个结构体啊,里面的一个个属性就是切入点,不过.NET中还没有函数去完成这个操作,自己根据别人的思路写个类吧。

算法有两个,一是根据查找字符串中是否有<img />标签,如果有的话输出src=”"里面的地址;二是正则表达式,字符串中有满足正则的就输出src的值。前者经过实验效率不高并且程序总是出bug,后者简洁高效,是首选。

首先新建一个类:ImgHelper.cs,然后添加引用:using System.Text.RegularExpressions;,然后添加下面的代码。

    class ImgHelper
    {
        /// <summary>
        /// 获取文章中图片地址的方法
        /// </summary>
        /// <param name="html">文章内容</param>
        /// <param name="regstr">正则表达式</param>
        /// <param name="keyname">关键属性名</param>
        /// <returns></returns>
        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();//这里是获取数组中第一个图片地址,当然也可以获取文章中其他图片,只需修改索引号。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值