从文本中提取图片路径(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

原文地址:https://www.cnblogs.com/ly-520/p/10203307.html

时间: 2024-10-10 21:45:37

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

java 解析富文本处理 img 标签

很多项目都需要到富文本来添加内容,就好比新闻啊,旅游景点之类的,都需要使用富文本去添加数据,然而怎么我这边就发现了两个问题 1)怎样将富文本的图片的 src 获取出来? 2)后台上传的时候用的是相对路径,前端显示需要的是最对路径 我下面就记录一下解决这两个问题的方法 1):怎么将富文本的图片的  src 获取出来?很简单,就一个工具即可 public static List<String> getImgStr(String htmlStr) { List<String> list

用正则从html代码中提取图片路径

$str = '<div align="center"> <img src="http://www.99tyg.com/public/images/e8/67/26/fc699f23244f7ca7cd360092f6ba5d641d61fe88.jpg?1476757957#h"></div>'; preg_match_all('/<img.*?src="(.*?)".*?>/is',$str,$

使用NPOI从Excel中提取图片及图片位置信息

原文:使用NPOI从Excel中提取图片及图片位置信息 问题背景: 话说,在ExcelReport的开发过程中,有一个比较棘手的问题:怎么复制图片呢? 当然,解决这个问题的第一步是:能使用NPOI提取到图片及图片的位置信息.到这里,一切想法都很顺利.但NPOI到底怎么提取图片及图片的位置信息呢?NPOI能不能提取到图片的位置信息呢? 这是两个问题.是两个让BaiGoogleDu几近沉默的问题.但官方教程的评论中还是流露出了答案的蛛丝马迹. 哇咔咔,这是我去看源码寻答案的的动力. 此处省去(N多字

MVC3中关于图片路径问题

MVC3中从页面1跳转到页面2时,发现页面2请求了两次,第二次请求参数为空,找来找去,发现页面2中有一个<img src ='@ViewBag.picName'/>标签, 当@ViewBag.picName为空时IE8也会发送请求到index,于是只好加个判断 @{ if (ViewBag.picName!=null) { <div><img src ='@ViewBag.picName'/></div> } } 问题解决 MVC3中关于图片路径问题

c# HTML中提取图片地址

public class HtmlHelper????{????????/// <summary>????????/// HTML中提取图片地址????????/// </summary>????????public static List<string> PickupImgUrl(string html)????????{????????????Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s

shell中的cut和paste函数,可以从多个文本中提取特定的列

shell中的cut和paste函数,可以从多个文本中提取特定的列,然后合并成为一个文件,方便下游分析中用R语言read.table()读取,进行分析作图. cut -d 分隔符 -f 列索引 cut -d '.' -f 2-5,8 file.txt #将文件file.txt以分隔符.进行分割,并取出第2列到第5列还有第8列的数据. paste file1 file2 > file3 原文地址:https://www.cnblogs.com/liuyin-2019/p/11846112.html

流编辑器sed使用总结及利用sed从文本中提取字符串的方法

sed 是一个编辑器,但它与其它大多数编辑器不同.除了不面向屏幕之外,它还是非交互式的,我们常用的vim编辑器则是交互式的. 这意味着必须将要对数据执行的命令插入到命令行或要处 理的脚本中.sed 在一个文件(或文件集)中非交互式.并且不加询问地接收一系列的命令并执行它们.因而,它流经文本就如同水流经溪流一样,因而 sed 恰当地代表了流编辑器,可以对文件或者文件集批量的进行删除 替换 插入 追加等操作. 流编辑器非常适合于执行重复的编辑,这种重复编辑如果由人工完成将花费大量的时间. 其参数可能

从文本中提取关键字

就在前几天的任务中用到了从文本描述中提取关键字的操作,特意从网上找到了一些提取关键字的方法. 总结如下:需要引入jieba这个库文件 基于TF-IDF算法进行关键词提取 import jieba.analyse sentence = "人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学.人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反

微信小程序富文本中的图片大小超出屏幕

这个问题我在小程序社区中提的,后来有个帮我回答了这个问题,我试了一下可以. 解决办法是过滤富文本内容,给图片标签添加一个样式,限制图片的最大宽度. replace(/\<img/gi,   '<img class="rich-img" ' ); 就可以了 rich-text   .rich-img { width: 100% ; height: auto ; } 原文地址:https://www.cnblogs.com/fangyinghua/p/9264425.html