從文本中提取圖片路徑(java 解析富文本處理 img 標籤)

不少項目都須要到富文原本添加內容,就比如新聞啊,旅遊景點之類的,都須要使用富文本去添加數據,然而怎麼我這邊就發現了兩個問題html

怎樣將富文本的圖片的 src 獲取出來?正則表達式

方法一:工具

利用正則表達式:spa

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

便可獲取到如下結果3d

方法二:code

引入一個叫作 jsoup 的 jar, (下載地址:https://jsoup.org/download)htm

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

下面是工具類blog

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圖片

相關文章
相關標籤/搜索