日期:2014-05-17  浏览次数:20492 次

取出文本内容中的第一张图像?
文本内容..Content

里头有图片,也有内容..当用这样的格式:

  public 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;
  }

  }

调用,imgUrl = getImgUrl(content, @"<IMG[^>]+src=\s*(?:'(?<src>[^']+)'|""(?<src>[^""]+)""|(?<src>[^>\s]+))\s*[^>]*>", "src")[0].ToString();

能得到文本内容中以<img src="" border="0">的图片..但如果是<input type="images" src="">时,就无效了.正则应该怎么写?谢谢..

------解决方案--------------------
,imgUrl = getImgUrl(content, @"<(IMG|input)[^>]+src=\s*(?:'(?<src>[^']+)'|""(?<src>[^""]+)""|(?<src>[^>\s]+))\s*[^>]*>", "src")[0].ToString();
------解决方案--------------------
(?i)<(img|input)[^>]*?src=(['""]?)(?<src>[^'""\s]+?)\2[^>]*?>
------解决方案--------------------
//private ArrayList getimgurl(string html)
//{
// ArrayList resultStr = new ArrayList();
// Regex r = new Regex(@"<IMG[^>]+src=\s*(?:'(?<src>[^']+)'|""(?<src>[^""]+)""|(?<src>[^>\s]+))\s*[^>]*>", RegexOptions.IgnoreCase);//忽视大小写
// MatchCollection mc = r.Matches(html);

// foreach (Match m in mc)
// {
// resultStr.Add(m.Groups["src"].Value.ToLower());
// }
// if (resultStr.Count > 0)
// {
// return resultStr;
// }
// else
// {
// resultStr.Clear();
// return resultStr;
// }
//}

取arraylist 第0个就是了