java获取富文本里的图片链接并原地替换
背景:将图文一键群发至多个微信公众号时,需要将富文本里的图片链接并原地替换成当前公众号用户的图片链接。
直接上代码:
/*** * 获取富文本里的图片链接 * @param htmlStr * @return */ public static List<String> getImgStr(String htmlStr) { List<String> list = new ArrayList<>(); String img = ""; Pattern p_image; Matcher m_image; // String regEx_img = "<img.*src=(.*?)[^>]*?>"; //图片链接地址 String regEx_img = "<img.*src\\s*=\\s*(.*?)[^>]*?>"; p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE); m_image = p_image.matcher(htmlStr); while (m_image.find()) { // 得到<img />数据 img = m_image.group(); // 匹配<img>中的src数据 Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img); while (m.find()) { list.add(m.group(1)); } } return list; } public static void main(String[] args) { String htmlStr = "<p>一闪一闪亮晶晶,<img src=\"http://www.xx.com/2022/12/09/bNJ3gk2q6zWdqdu_20221209152446A001.png\">满天都是小星星<img src=\"http://www.xxx.cn/images/12345678.jpeg\"></p>"; List list=getImgStr(htmlStr); for (Object a:list){ System.out.println(a.toString()); htmlStr = htmlStr.replace(a.toString(),"11"); }; System.out.println(list); System.out.println(htmlStr); }
本文原创,转载必追究版权。