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包和自己写正则表达式相关推荐

  1. 多个html如何套用套一个头部,Vue.js项目中管理每个页面的头部标签的两种方法...

    在 Vue SPA 应用中,如果想要修改 HTML 的头部标签,如页面的 title ,我们只能去修改 index.html 模板文件,但是这个是全局的修改,如何为每个页面都设置不一样的 title ...

  2. java web ip_详解Java Web如何限制访问的IP的两种方法

    前一阵子因为在做项目时碰到了这个功能,现在好好总结一下,至于为什么要限制IP访问,我就不多说了.然后百度了一下,现在主要有两种方式去限制IP访问,第一种是最简单的方便的,第二种是通过过滤器来限制访问. ...

  3. java中char类型转换成int类型的两种方法

    java中char类型转换成int类型的两种方法 方法一: 第一种利用Integer包装类的方法Integer.parseInt Copychar ch = '9'; if (Character.is ...

  4. Java调用打印机打印PDF文档的两种方法

    最近,由于项目需求,需要增加系统调用打印机打印PDF文档功能.以前在Asp.Net项目中做过套打,但是现在的需求直接文档打印,下面是实现代码调用打印机的两种方法. 1.Java Print Servi ...

  5. java 图片压缩100k_Java 实现图片压缩的两种方法

    问题背景. 典型的情景:Nemo社区中,用户上传的图片免不了要在某处给用户做展示. 如用户上传的头像,那么其他用户在浏览该用户信息的时候,就会需要回显头像信息了. 用户上传的原图可能由于清晰度较高而体 ...

  6. JAVA:线程总结及多线程实现的两种方法

    JAVA:线程总结 目录 目录 JAVA:线程总结 JAVA:线程总结 01_多线程(多线程的引入)(了解) 02_多线程(多线程并行和并发的区别)(了解) 03_多线程(Java程序运行原理和JVM ...

  7. java程序将汉字转成拼音的两种方法

    1.使用pinyin4j将汉字转成拼音,附件为pinyin4j的jar包 Java代码   import net.sourceforge.pinyin4j.PinyinHelper; import n ...

  8. 深入学习理解(1):java:ExecutorService invokeAll 任务的批量提交invokeAll两种方法的区别

    ExecutorService的invokeAll方法有两种用法: 1.exec.invokeAll(tasks) 2.exec.invokeAll(tasks, timeout, unit) 其中t ...

  9. java手机怎样越狱_ipad怎么自己越狱 两种方法介绍【图文】

    导读: 苹果 产品在各个方面都受到消费者的喜爱,苹果产品使用的都是自己的系统,虽然很完美,然后也具有一定的局限性,很多时候,我们想要在苹果产品当中下载一些应用程序都会受到限制,让我们感到非常苦恼,想要 ...

最新文章

  1. git中的fork应该这样使用
  2. oracle19c主目录用户,oracle 19c 添加 scott用户与表
  3. 美团点评稳定价格措施及稳定价格期结束 超额配股权失效
  4. 回顾我学过的编程语言
  5. 温州大学《机器学习》课程课件(七、决策树)
  6. 如何压测基于容器服务ACK托管的DUBBO服务
  7. CS294-112 深度强化学习 秋季学期(伯克利)NO.17 Meta-learning and parallelism
  8. CTF中遇到不知道文件类型_AE中你不知道的隐藏功能-Mask与特效
  9. 几种HtmlEncode的区别(转)
  10. HNOI2015 实验比较
  11. 你真的知道 == 和 equals 的区别吗?
  12. c语言 一元多项式乘法,[内附完整源码和文档] 基于C语言实现的一元多项式的计算...
  13. 三星android webview,[转]三星GS4(Android 4.3)上webview crash问题
  14. L1、L2、Batch Normalization、Dropout为什么能够防止过拟合呢?
  15. csf安装及命令参数
  16. 一周学习总结:vue学前准备知识
  17. 计算机打印机图标删除吗,打印机图标不见了怎么办 打印机图标消失的解决方法...
  18. deepin任务栏消失解决方法
  19. 爬虫Selenium+Chrome 控制浏览器,打开百度网页,输入搜索关键词,点击回车,截取搜索页面
  20. oracle ebs mrp提前期,EBS-MRP提前期.doc

热门文章

  1. python display update用不了能用filp_疯狂的Pygame——使用python写游戏(yuyu版)——基础讲解部分——第一章...
  2. 【thymeleaf】【SpringBoot】在HTML中调用Spring Bean
  3. usb3.0 ssd 测试软件,当USB3.0遇上SSD,TB败得移动硬盘盒测试
  4. html字符串使用xpath,使用XPath和regex在HTML注释中提取文本
  5. spring cloud入门_Spring Boot 2.x基础教程:快速入门
  6. html冷门标签,html 冷门
  7. idea怎么创建python项目_idea创建django项目
  8. python中常用的序列化模块_使用pickle模块对python对象进行序列化
  9. mysql枫叶_mysql总结
  10. springboot实现多线程service实现