求一正则表达式,要求得到所有的图片列表
一页面包含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