博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET/C#获取文章中图片的地址
阅读量:5067 次
发布时间:2019-06-12

本文共 1309 字,大约阅读时间需要 4 分钟。

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

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

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

[csharp] 
 
  1. class ImgHelper  
  2. {  
  3.     /// <summary>  
  4.     /// 获取文章中图片地址的方法  
  5.     /// </summary>  
  6.     /// <param name="html">文章内容</param>  
  7.     /// <param name="regstr">正则表达式</param>  
  8.     /// <param name="keyname">关键属性名</param>  
  9.     /// <returns></returns>  
  10.     public static ArrayList getImgUrl(string html, string regstr, string keyname)  
  11.     {  
  12.         ArrayList resultStr = new ArrayList();  
  13.         Regex r = new Regex(regstr, RegexOptions.IgnoreCase);  
  14.         MatchCollection mc = r.Matches(html);  
  15.   
  16.         foreach (Match m in mc)  
  17.         {  
  18.             resultStr.Add(m.Groups[keyname].Value.ToLower());  
  19.         }  
  20.         if (resultStr.Count > 0)  
  21.         {  
  22.             return resultStr;  
  23.         }  
  24.         else  
  25.         {  
  26.             //没有地址的时候返回空字符  
  27.             resultStr.Add("");  
  28.             return resultStr;  
  29.         }  
  30.     }  
  31.   
  32. }  

在.aspx.cs文件中调用:

[csharp] 
 
  1. Image1.ImageUrl =ImgHelper.getImgUrl("字符串",@"<IMG[^>]+src=\s*(?:'(?<src>[^']+)'|""(?<src>[^""]+)""|(?<src>[^>\s]+))\s*[^>]*>""src")[0].ToString();//这里是获取数组中第一个图片地址,当然也可以获取文章中其他图片,只需修改索引号。  

 

转载于:https://www.cnblogs.com/q101301/p/3701865.html

你可能感兴趣的文章
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
springboot自带定时任务和集成quartz
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>
TCP粘包问题及解决方案
查看>>
vijos1404 遭遇战
查看>>
构建之法阅读笔记02
查看>>
添加按钮
查看>>
移动端页面开发适配 rem布局原理
查看>>
Ajax中文乱码问题解决方法(服务器端用servlet)
查看>>
jPlayer插件的使用
查看>>
会计电算化常考题目一
查看>>
theme-windowAnimationStyle 动画四个方法的意义
查看>>
小菜的一天 做开发一个半月了写点感悟
查看>>
js之序列化、eval和Date类用法
查看>>
jquery ajax发送FormData
查看>>
多态:抽象类、接口
查看>>