我是靠谱客的博主 无限哈密瓜,最近开发中收集的这篇文章主要介绍java 获取html字符串中的img标签src,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/**
 * 获取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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部