Java过滤HTML标签,即提取HTML中的纯文本,不使用正则表达式【jsoup方式,超级简单】,附富文本方式

服务器端提取方案(Jsoup方式)

如果你想从带HTML标签的字符串中提取纯文本的话,可以使用jsoup工具包,非常简单

应用场景,比如你的网站有个富文本编辑器,富文本编辑器中带有很多html标签,比如p标签,img标签等等,这些在富文本编辑器中时非常常见的,而富文本提交的信心带标签,我们有的时候不是要把添加的内容完全展示,而是展示缩略信息就好(也就是纯文本信息),这样简略也不影响布局,就想我们CSDN的文字缩略信息,就是从富文本内容中提取了纯文本信息(我猜的)


版权声明:本文为CSDN博主「BigBug博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_31384551/article/details/81326812

实现:使用jsoup,这个是干嘛的百度去,导入jar包,链接

复制代码
<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.16.1</version>
</dependency>
复制代码
<dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.11.3</version>
        </dependency>
不使用maven的自己下载去jar下载地址
这样就实现了过滤标签/提取纯文本

客户端方案(富文本方式)
在网页中发布文章的时候提取纯文本,一般是使用富文本编辑器编写文章,大多富文本都提供有提取富文本中纯文本的api

百度UEditor 

ue.getContentTxt();
wangEditor

editor.txt.text();
其他的编辑器请仔细阅读文档
————————————————
版权声明:本文为CSDN博主「BigBug博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31384551/article/details/81326812

当遇到这个需求的时候第一反应就是使用正则的!进行非匹配筛选,看了一些别人写的,表示看不懂。。。

然后有点投机取巧的意思可以把不要的匹配出来然后在替换掉

提取文本

思路:去掉所有标签

复制代码
	/**
     * 正则预编译
     */
    private static final Pattern pattern = Pattern.compile("(<.+?>)|(</.+?>)");
       
	/**
     * @Description: 去掉富文本标签
     * @param content 富文本
     * @Author: zlh
     * @Date: 2020/7/10 10:06
     * @Return java.lang.String
     */
    public String dealContent(String content){
       // 匹配标签
        Matcher matcher = pattern.matcher(content);
        while (matcher.find()){
            // 替换图片
            content= matcher.replaceAll("").replace(" ", "");
        }

        return content;
    }

提取中文

思路:匹配中文

复制代码
	/**
     * 正则预编译
     */
   private static final Pattern pattern = Pattern.compile("([\\u4e00-\\u9fa5]+)");

	public static String getZh(String str) {
	        String zh = "";
	
	        Matcher matcher = Pattern.compile(regx).matcher(str);
	        while (matcher.find()) {
	            zh += match.group(0)
	        }
	        return zh;
    }
  • 这个只是匹配中文如果你的标签中含有中文也会匹配,文本中含有数组,字符不会匹配。
相关推荐
贫民窟的勇敢爷们19 小时前
SpringBoot整合AOP切面编程实战,实现日志统一记录+接口权限校验
java·spring boot·spring
AC赳赳老秦19 小时前
供应链专员提效:OpenClaw自动跟踪物流信息、更新库存数据,异常自动提醒
java·大数据·服务器·数据库·人工智能·自动化·openclaw
迈巴赫车主19 小时前
Java基础:list、set、map一遍过
java·开发语言
灵犀学长20 小时前
基于 Spring ThreadPoolTaskScheduler + CronTrigger 实现的动态定时任务调度系统
java·数据库·spring
ZC跨境爬虫20 小时前
跟着MDN学HTML_day_48:(Node接口)
前端·javascript·ui·html·音视频
好家伙VCC21 小时前
【无标题】
java
PieroPc21 小时前
CAMWATCH — 局域网摄像头监控系统 Fastapi + html
前端·python·html·fastapi·监控
小碗羊肉1 天前
【JavaWeb | 第十一篇】文件上传(本地&阿里云OSS)
java·阿里云·servlet
吾疾唯君医1 天前
Java SpringBoot集成积木报表实操记录
java·spring boot·spring·导出excel·积木报表·数据文件下载
Byron Loong1 天前
【c++】为什么有了dll和.h,还需要包含lib
java·开发语言·c++