Java去除掉HTML里面所有标签的两种方法——开源jar包和自己写正则表达式
Java去除掉HTML里面所有标签,主要就两种,要么用开源的jar处理,要么就自己写正则表达式。自己写的话,可能处理不全一些自定义的标签。企业应用基本都是能找开源就找开源,实在不行才自己写……
1,开源的,我目前找到的就是Jsoup包:
public static String getTextFromTHML(String htmlStr) {Document doc = Jsoup.parse(htmlStr);String text = doc.text();// remove extra white spaceStringBuilder builder = new StringBuilder(text);int index = 0;while(builder.length()>index){char tmp = builder.charAt(index);if(Character.isSpaceChar(tmp) || Character.isWhitespace(tmp)){builder.setCharAt(index, ' ');}index++;}text = builder.toString().replaceAll(" +", " ").trim();return text;}
2,自己写的话,百度一搜一大堆,这里只是借用一下:
public static String removeTag(String htmlStr) {String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // scriptString regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // styleString regEx_html = "<[^>]+>"; // HTML tagString regEx_space = "\\s+|\t|\r|\n";// other characters Pattern p_script = Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE);Matcher m_script = p_script.matcher(htmlStr);htmlStr = m_script.replaceAll("");Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);Matcher m_style = p_style.matcher(htmlStr);htmlStr = m_style.replaceAll("");Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);Matcher m_html = p_html.matcher(htmlStr);htmlStr = m_html.replaceAll("");Pattern p_space = Pattern.compile(regEx_space, Pattern.CASE_INSENSITIVE);Matcher m_space = p_space.matcher(htmlStr);htmlStr = m_space.replaceAll(" ");return htmlStr;}
转载于:https://www.cnblogs.com/wytings/p/4580065.html
Java去除掉HTML里面所有标签的两种方法——开源jar包和自己写正则表达式相关推荐
- 多个html如何套用套一个头部,Vue.js项目中管理每个页面的头部标签的两种方法...
在 Vue SPA 应用中,如果想要修改 HTML 的头部标签,如页面的 title ,我们只能去修改 index.html 模板文件,但是这个是全局的修改,如何为每个页面都设置不一样的 title ...
- java web ip_详解Java Web如何限制访问的IP的两种方法
前一阵子因为在做项目时碰到了这个功能,现在好好总结一下,至于为什么要限制IP访问,我就不多说了.然后百度了一下,现在主要有两种方式去限制IP访问,第一种是最简单的方便的,第二种是通过过滤器来限制访问. ...
- java中char类型转换成int类型的两种方法
java中char类型转换成int类型的两种方法 方法一: 第一种利用Integer包装类的方法Integer.parseInt Copychar ch = '9'; if (Character.is ...
- Java调用打印机打印PDF文档的两种方法
最近,由于项目需求,需要增加系统调用打印机打印PDF文档功能.以前在Asp.Net项目中做过套打,但是现在的需求直接文档打印,下面是实现代码调用打印机的两种方法. 1.Java Print Servi ...
- java 图片压缩100k_Java 实现图片压缩的两种方法
问题背景. 典型的情景:Nemo社区中,用户上传的图片免不了要在某处给用户做展示. 如用户上传的头像,那么其他用户在浏览该用户信息的时候,就会需要回显头像信息了. 用户上传的原图可能由于清晰度较高而体 ...
- JAVA:线程总结及多线程实现的两种方法
JAVA:线程总结 目录 目录 JAVA:线程总结 JAVA:线程总结 01_多线程(多线程的引入)(了解) 02_多线程(多线程并行和并发的区别)(了解) 03_多线程(Java程序运行原理和JVM ...
- java程序将汉字转成拼音的两种方法
1.使用pinyin4j将汉字转成拼音,附件为pinyin4j的jar包 Java代码 import net.sourceforge.pinyin4j.PinyinHelper; import n ...
- 深入学习理解(1):java:ExecutorService invokeAll 任务的批量提交invokeAll两种方法的区别
ExecutorService的invokeAll方法有两种用法: 1.exec.invokeAll(tasks) 2.exec.invokeAll(tasks, timeout, unit) 其中t ...
- java手机怎样越狱_ipad怎么自己越狱 两种方法介绍【图文】
导读: 苹果 产品在各个方面都受到消费者的喜爱,苹果产品使用的都是自己的系统,虽然很完美,然后也具有一定的局限性,很多时候,我们想要在苹果产品当中下载一些应用程序都会受到限制,让我们感到非常苦恼,想要 ...
最新文章
- git中的fork应该这样使用
- oracle19c主目录用户,oracle 19c 添加 scott用户与表
- 美团点评稳定价格措施及稳定价格期结束 超额配股权失效
- 回顾我学过的编程语言
- 温州大学《机器学习》课程课件(七、决策树)
- 如何压测基于容器服务ACK托管的DUBBO服务
- CS294-112 深度强化学习 秋季学期(伯克利)NO.17 Meta-learning and parallelism
- CTF中遇到不知道文件类型_AE中你不知道的隐藏功能-Mask与特效
- 几种HtmlEncode的区别(转)
- HNOI2015 实验比较
- 你真的知道 == 和 equals 的区别吗?
- c语言 一元多项式乘法,[内附完整源码和文档] 基于C语言实现的一元多项式的计算...
- 三星android webview,[转]三星GS4(Android 4.3)上webview crash问题
- L1、L2、Batch Normalization、Dropout为什么能够防止过拟合呢?
- csf安装及命令参数
- 一周学习总结:vue学前准备知识
- 计算机打印机图标删除吗,打印机图标不见了怎么办 打印机图标消失的解决方法...
- deepin任务栏消失解决方法
- 爬虫Selenium+Chrome 控制浏览器,打开百度网页,输入搜索关键词,点击回车,截取搜索页面
- oracle ebs mrp提前期,EBS-MRP提前期.doc
热门文章
- python display update用不了能用filp_疯狂的Pygame——使用python写游戏(yuyu版)——基础讲解部分——第一章...
- 【thymeleaf】【SpringBoot】在HTML中调用Spring Bean
- usb3.0 ssd 测试软件,当USB3.0遇上SSD,TB败得移动硬盘盒测试
- html字符串使用xpath,使用XPath和regex在HTML注释中提取文本
- spring cloud入门_Spring Boot 2.x基础教程:快速入门
- html冷门标签,html 冷门
- idea怎么创建python项目_idea创建django项目
- python中常用的序列化模块_使用pickle模块对python对象进行序列化
- mysql枫叶_mysql总结
- springboot实现多线程service实现