使用正则表达式从一段字符串中匹配出img标签的src值

时间:2021-07-14 07:34:57

第一步:匹配内容中存在的img标签; 第二步:得到匹配到的img标签中的内容; 第三步:匹配第二步得到的img标签中的src

/**

 * 获取img标签中的src值
 * @param content
 * @return
 */
public static List<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();
        }
    }
    return list;
}