概述
/**
* 获取img标签的src
* */
public static String getImgSrc(String content){
List<String> list = new ArrayList<String>();
//目前img标签标示有3种表达式
//<img alt="" src="1.jpg"/> <img alt="" src="1.jpg"></img> <img alt="" src="1.jpg">
//开始匹配content中的<img />标签
Pattern p_img = Pattern.compile("<(img|IMG)(.*?)(/>|></img>|>)");
Matcher m_img = p_img.matcher(content);
boolean result_img = m_img.find();
if (result_img) {
while (result_img) {
//获取到匹配的<img />标签中的内容
String str_img = m_img.group(2);
//开始匹配<img />标签中的src
Pattern p_src = Pattern.compile("(src|SRC)=("|')(.*?)("|')");
Matcher m_src = p_src.matcher(str_img);
if (m_src.find()) {
String str_src = m_src.group(3);
list.add(str_src);
}
//结束匹配<img />标签中的src
//匹配content中是否存在下一个<img />标签,有则继续以上步骤匹配<img />标签中的src
result_img = m_img.find();
}
}
//去掉静态表情图和编辑器表情图片
List<String> srcstemp=new ArrayList<>();
for(String imageSrc:list){
if(!imageSrc.contains("/static") && !imageSrc.contains("/emotion")){
srcstemp.add(imageSrc);
}
}
list=srcstemp;
if(list.size()>0){
return list.get(0);
}else{
return null;
}
}
private static List<String> getImageSrcList(String html, int length,HttpServletRequest request) { String imageURL= ApplicationUtil.getSiteConfigBean().getNewImagePath(request); ArrayList<String> list = new ArrayList<>(); ArrayList<Integer> srcIndexList= new ArrayList<>(); if (html != null && html.length() != 0) { //提取图片 String patternString = "<img\b[^<>]*?\bsrc[\s]*=[\s|'|"]*([^\s|'|"]*)[\s|'|"]*"; Pattern patten = Pattern.compile(patternString); Matcher m = patten.matcher(html); while (m.find()) { try { String src = m.group(1); System.out.println(src); //如果是gif则不缩略 if("gif".equalsIgnoreCase(src.substring(src.lastIndexOf('.')+1,src.length())) || src.startsWith("/static")){ list.add(src); //记录排序位置 int srcIndex=html.indexOf(m.group(1)); srcIndexList.add(srcIndex); }else{ list.add(getShortImage(src)); int srcIndex=html.indexOf(m.group(1)); srcIndexList.add(srcIndex); } if (list.size() >= length && length > 0) { break; } } catch (Exception e) { e.printStackTrace(); } } //提取视频截图 patternString = "<embed\b[^<>]*?\bimgsrc[\s]*=[\s|'|"]*([^\s|'|"]*)[\s|'|"]*"; patten = Pattern.compile(patternString); m = patten.matcher(html); while (m.find()) { try { String src = "video_"+imageURL+m.group(1); System.out.println(src); list.add(src); int srcIndex=html.indexOf(m.group(1)); srcIndexList.add(srcIndex); if (list.size() >= length && length > 0) { break; } } catch (Exception e) { e.printStackTrace(); } } } //缩略图排序 ArrayList<String> result = new ArrayList<>(); int total=srcIndexList.size(); do{ if(total>0){ //获取最小值索引 int index=srcIndexList.indexOf(Collections.min(srcIndexList)); result.add(list.get(index)); srcIndexList.remove(index); list.remove(index); total=srcIndexList.size(); } }while (total>0); return result; }
最后
以上就是无限哈密瓜为你收集整理的java 获取html字符串中的img标签src的全部内容,希望文章能够帮你解决java 获取html字符串中的img标签src所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复