2025年3月28日 星期五 甲辰(龙)年 月廿七 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Java

从文本中提取图片路径(java 解析富文本处理 img 标签)

时间:03-09来源:作者:点击数:24

很多项目都需要到富文本来添加内容,就好比新闻啊,旅游景点之类的,都需要使用富文本去添加数据,然而怎么我这边就发现了两个问题

怎样将富文本的图片的 src 获取出来?

方法一:

利用正则表达式:

  • 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;
  • }

即可获取到以下结果

方法二:

引入一个叫做 jsoup 的 jar, (下载地址:https://jsoup.org/download)

  • <dependency>
  • <groupId>org.jsoup</groupId>
  • <artifactId>jsoup</artifactId>
  • <version>1.11.2</version>
  • </dependency>

下面是工具类

  • public static String documentBody (String newsBody) {
  • Element doc = Jsoup.parseBodyFragment(newsBody).body();
  • Elements pngs = doc.select("img[src]");
  • String httpHost = "http://192.168.0.100";
  • for (Element element : pngs) {
  • String imgUrl = element.attr("src");
  • if (imgUrl.trim().startsWith("/")) { // 会去匹配我们富文本的图片的 src 的相对路径的首个字符,请注意一下
  • imgUrl =httpHost + imgUrl;
  • element.attr("src", imgUrl);
  • }
  • }
  • return newsBody = doc.toString();
  • }
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门