欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java中使用正则表达式获取网页中所有图片的路径

程序员文章站 2024-03-05 14:04:36
/** * 从html源码中提取图片路径,最后以一个 string 类型的 list 返回,如果不包含任何图片,则返回一个 size=0 的list *...
/**
	 * 从html源码中提取图片路径,最后以一个 string 类型的 list 返回,如果不包含任何图片,则返回一个 size=0 的list
	 * 需要注意的是,此方法只会提取以下格式的图片:.jpg|.bmp|.eps|.gif|.mif|.miff|.png|.tif|.tiff|.svg|.wmf|.jpe|.jpeg|.dib|.ico|.tga|.cut|.pic
	 * @param htmlcode html源码
	 * @return <img>标签 src 属性指向的图片地址的list集合
	 * @author carl he
	 */
	public static list<string> getimagesrc(string htmlcode) {
		list<string> imagesrclist = new arraylist<string>();
		pattern p = pattern.compile("<img//b[^>]*//bsrc//b//s*=//s*('|/")?([^'/"/n/r/f>]+(//.jpg|//.bmp|//.eps|//.gif|//.mif|//.miff|//.png|//.tif|//.tiff|//.svg|//.wmf|//.jpe|//.jpeg|//.dib|//.ico|//.tga|//.cut|//.pic)//b)[^>]*>", pattern.case_insensitive);
		matcher m = p.matcher(htmlcode);
		string quote = null;
		string src = null;
		while (m.find()) {
			quote = m.group(1);
			src = (quote == null || quote.trim().length() == 0) ? m.group(2).split("//s+")[0] : m.group(2);
			imagesrclist.add(src);
		}
		return imagesrclist;
	}