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

Posted 让我再想想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从文本中提取图片路径(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

以上是关于从文本中提取图片路径(java 解析富文本处理 img 标签)的主要内容,如果未能解决你的问题,请参考以下文章

java实现word导入导出富文本(含图片)-附完整测试用例

java存储富文本到啥数据库

uni-app中v-html绑定的富文本怎么修改里面图片的大小

Android中Textview加载HTML方法——RichText富文本解析器

Android中Textview加载HTML方法——RichText富文本解析器

关于富文本kindeditor中上传本地图片成功后获取到的图片路径是相对路径修改为绝对路径