取出文本内容中的第一张图像?
文本内容..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个就是了