当前位置:编程学习 > C#/ASP.NET >>

求一正则表达式,要求得到所有的图片列表

一页面包含N多不同网站的图片(jpg|gif|png|jpng|bmp),通过正则得到所有的图片地址列表。 --------------------编程问答-------------------- /// <summary>
        /// 取出文本中的图片地址
        /// </summary>
        /// <param name="HTMLStr">HTMLStr</param>
        public static string GetImgUrl(string HTMLStr)
        {
            string str = string.Empty;
            string sPattern = @"^<img\s+[^>]*>";
            Regex r = new Regex(@"<img\s+[^>]*\s*src\s*=\s*([']?)(?<url>\S+)'?[^>]*>",
                RegexOptions.Compiled);
            Match m = r.Match(HTMLStr.ToLower());
            if (m.Success)
                str = m.Result("${url}");
            return str;
        }
--------------------编程问答-------------------- 强

----------------------------------------------------
企城 中小型企业供应链管理平台 http://www.7ecity.com/ --------------------编程问答-------------------- \\\w+\.\w{3,4}\W --------------------编程问答-------------------- ArrList arr = new  ArrList ();
string sRegex = @"<img\s?src=(?<url>.+)>"
  Regex reg = new Regex(sRegex,RegexOptions.IgnoreCase);
  MatchCollection mc = reg.Matches(html);
   if(mc == null)
   {         }
   foreach (Match match in mc)
   {
      arr.Add(match.Groups["url"].Value.ToString());
   } --------------------编程问答-------------------- 正需要 --------------------编程问答-------------------- 楼主给的不是太明确,不过如果扩展名固定,那么可以用下面的全部取出,然后过滤一下重复的就行了

string yourStr = richTextBox1.Text;
MatchCollection mc = Regex.Matches(yourStr, @"[^=""'\s]*?\.(jpg|gif|png|jpeg|bmp)", RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
    richTextBox2.Text += m.Value + "\n";
} --------------------编程问答-------------------- /// <summary>
        /// 返回字符串中所有的图片地址
        /// </summary>
        /// <param name="str">含图片地址的字符串</param>
        /// <returns>返回地址列表ArrayList</returns>
        public static ArrayList GetAllImg(string str)
        {
            ArrayList al = new ArrayList();
            MatchCollection mc = Regex.Matches(str, @"[^=""'\s]*?\.(jpg|gif|png|jpeg|bmp)", RegexOptions.IgnoreCase);
            foreach (Match m in mc)
            {
                al.Add(m.Value);
            }
            return al;

        }
        /// <summary>
        /// 返回字符串中所有的图片地址
        /// </summary>
        /// <param name="str">含图片地址的字符串</param>
        /// <param name="imgType">限定类型 多类型之间用|号隔开 如jpg|gif|png|jpeg|bmp</param>
        /// <returns>返回地址列表 ArrayList</returns>
        public static ArrayList GetAllImg(string str,string imgType)
        {
            ArrayList al = new ArrayList();
            MatchCollection mc = Regex.Matches(str, @"[^=""'\s]*?\.("+imgType+")", RegexOptions.IgnoreCase);
            foreach (Match m in mc)
            {
                al.Add(m.Value);
            }
            return al;

        }

参考lxcnn(过客) 的,别告我侵权啊 ^_^

另:
xuxiaoyang520yp() 的取出来的有点问题
如果是<img src=***.jpg>的正常 取出=***.jpg
如果是<img src="***.jpg" width="">则不正常 取出来的值为="***.jpg" width="" --------------------编程问答-------------------- 一页面包含N多不同网站的图片(jpg|gif|png|jpng|bmp),通过正则得到所有的图片地址列表。

(jpg|gif|png|jpng|bmp) 你的这个就是正则了

.*\.(jpg|gif|png|jpng|bmp) 这个就是任意字符加上点再加上扩展名。 --------------------编程问答-------------------- study --------------------编程问答--------------------
[algfhfgh广发华福规范化ign=center][/align] 
--------------------编程问答--------------------

            接分。
        
--------------------编程问答--------------------

            color2002 的不错.
顶一顶 --------------------编程问答-------------------- hao  --------------------编程问答-------------------- ....
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,