获取HTML字符串里面所有图片的地址(所有src的值)

思路:利用正则表达式检索字符串
正则表达式:
       "<(img|IMG)(.*?)(>|></img>|/>)"
        <img 或 <IMG 开头     任意内容       > 或 ></img> 或 /> 结尾        
       "(src|SRC)=(\"|\')(.*?)(\"|\')"
        <src 或 <SRC  =  “ 或者 ‘  任意内容  “ 或者 ‘结尾

   依赖包:
    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    代码:
     public static List<String> imgs(String content) {
     //创建存放src值的list
        List<String> urlList  = new ArrayList<String>();
        //匹配字符串中的img标签
        Pattern p = Pattern.compile("<(img|IMG)(.*?)(>|></img>|/>)");
        Matcher matcher = p.matcher(content);
        boolean hasPic = matcher.find();
        //判断是否含有图片
        if(hasPic == true){
            //如果含有图片,那么持续进行查找,直到匹配不到
            while(hasPic) {
                //获取第二个分组的内容,也就是 (.*?)匹配到的
                String group = matcher.group(2);
                //匹配图片的地址
                Pattern srcText =
              Pattern.compile("(src|SRC)=(\"|\')(.*?)(\"|\')");
                Matcher matcher2 = srcText.matcher(group);
                if( matcher2.find() ) {
                    try {
                        urlList.add(matcher2.group(3));
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
                hasPic = matcher.find();//判断是否还有img标签
            }

        }
        return urlList;

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值