zoukankan      html  css  js  c++  java
  • 从文本中提取图片路径(java 解析富文本处理 img 标签)

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

    怎样将富文本的图片的 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();
        }

    转载自:https://www.cnblogs.com/xjbBill/p/8439248.html

  • 相关阅读:
    Sizzle源码分析 (一)
    VueJS 数据驱动和依赖追踪分析
    使用 nvm 来管理nodejs版本 。
    在node中使用 ES6
    mongoDB & Nodejs 访问mongoDB (二)
    mongoDB & Nodejs 访问mongoDB (一)
    Javascript原型链和原型继承
    Javascript 闭包与高阶函数 ( 二 )
    SDOI2019&十二省联考 游记
    Luogu-3648 [APIO2014]序列分割
  • 原文地址:https://www.cnblogs.com/ly-520/p/10203307.html
Copyright © 2011-2022 走看看