1、应用场景:从一份html文件中或从String(是html内容)中提取纯文本,去掉网页标签;

2、代码一:replaceAll搞定

 //从html中提取纯文本public static String StripHT(String strHtml) {String txtcontent = strHtml.replaceAll("</?[^>]+>", ""); //剔出<html>的标签  txtcontent = txtcontent.replaceAll("<a>\\s*|\t|\r|\n</a>", "");//去除字符串中的空格,回车,换行符,制表符  return txtcontent;}

3、代码二:正则表达式搞定

//从html中提取纯文本public static String Html2Text(String inputString) {String htmlStr = inputString; // 含html标签的字符串String textStr = "";java.util.regex.Pattern p_script;java.util.regex.Matcher m_script;java.util.regex.Pattern p_style;java.util.regex.Matcher m_style;java.util.regex.Pattern p_html;java.util.regex.Matcher m_html;try {String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; // 定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);m_script = p_script.matcher(htmlStr);htmlStr = m_script.replaceAll(""); // 过滤script标签p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);m_style = p_style.matcher(htmlStr);htmlStr = m_style.replaceAll(""); // 过滤style标签p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);m_html = p_html.matcher(htmlStr);htmlStr = m_html.replaceAll(""); // 过滤html标签textStr = htmlStr;} catch (Exception e) {System.err.println("Html2Text: " + e.getMessage()); }//剔除空格行textStr=textStr.replaceAll("[ ]+", " ");textStr=textStr.replaceAll("(?m)^\\s*$(\\n|\\r\\n)", "");return textStr;// 返回文本字符串}

3、代码三:HTMLEditorKit.ParserCallback搞定,Java自带的类

package com.util;import java.io.*;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;public class Html2Text extends HTMLEditorKit.ParserCallback {StringBuffer s;public Html2Text() {}public void parse(Reader in) throws IOException {s = new StringBuffer();ParserDelegator delegator = new ParserDelegator();// the third parameter is TRUE to ignore charset directivedelegator.parse(in, this, Boolean.TRUE);}public void handleText(char[] text, int pos) {s.append(text);}public String getText() {return s.toString();}public static void main (String[] args) {try {// the HTML to convert//Reader in=new StringReader("string");    FileReader in = new FileReader("java-new.html");Html2Text parser = new Html2Text();parser.parse(in);in.close();System.out.println(parser.getText());}catch (Exception e) {e.printStackTrace();}}
}

Java实现从Html文本中提取纯文本相关推荐

  1. 从html富文本中提取纯文本

    其实从html富文本中提取纯文本很简单,富文本基本上是使用html标签给文本加上丰富多彩的样式. 所以只需要将富文本字符串中的"<.....>"标签剔除,即可得到纯文本 ...

  2. js把vue转化html,将 vue.js 获取的 html 文本转化为纯文本

    我存入数据表中的数据是使用 html  格式,获取数据是使用 vue 获取. 遇到了一个问题,就是界面上显示的数据是 html 格式的,但是我需要它显示纯文本. 怎么做呢?首先在  js  中写一个将 ...

  3. HtmlParser提取网页中的纯文本信息

    转载自   HtmlParser提取网页中的纯文本信息 HTMLParser 一个解析web页面的开源类库.           准备学习下搜索方面的技术,就学习了些网络爬虫的知识.最近一直在一个点上 ...

  4. Word处理控件Aspose.Words功能演示:用Java从Word文档中提取文本

    Aspose.Words For .NET是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsof ...

  5. PHP提取富文本中的纯文字

    有时候富文本的内容需要放到列表页进行展示,这个时候就不能直接把content展示出来了,需要进行数据处理(只取文字部分)来展示 /*** 提取富文本中的纯文字* addtime 2020年8月10日 ...

  6. python-批量提取srt文件中的纯文本

    python-批量提取srt文件中的纯文本 1.功能介绍 为了方便日常的使用,我将批量提取 srt 文件中纯文本的程序打包成了 exe 文件,这样就不用安装 python 环境和相关的库了. 现在版本 ...

  7. python自动发邮件富文本_django 实现后台从富文本提取纯文本

    前言: 很多时候我们都会用富文本,比如说在版权区.博客文章编辑时等等.但是如果我们要做一个搜索的功能,去从富文本中查找关键字,就需要将富文本中的文本了.但是 django 并没有专门函数去做.这个时候 ...

  8. 一种精确从文本中提取URL的思路及实现

    在今年三四月份,我接受了一个需求:从文本中提取URL.这样的需求,可能算是非常小众的需求了.大概只有QQ.飞信.阿里旺旺等之类的即时通讯软件存在这样的需求.在研究这个之前,我测试了这些软件这块功能,发 ...

  9. 自然语言处理(NLP)之从文本中提取时间

    在我们的日常生活和工作中,从文本中提取时间是一项非常基础却重要的工作,因此,接下来将介绍如何从文本中有效地提取时间.   举个简单的例子,我们需要从下面的文本中提取时间: 6月28日,杭州市统计局权威 ...

最新文章

  1. R语言使用hexbin包的hexbin函数可视化散点图、应对数据量太大、且有数据重叠的情况、普通散点图可视化效果变差的情况、提供了对六边形单元格的二元绑定、通过图例颜色标定每一个区域数据点的数量
  2. Oracle10g 64bit CentOS5.2_x64 安装手记
  3. python基础知识整理-python基础知识整理——容器
  4. Swift 开发的工具类,主要是提供正则表达式及其它,Github会长期维护
  5. java jre 中导入导出证书
  6. linux密码stdin怎么用,如何使ssh接收来自stdin的密码
  7. 服气!蹭热点无敌,麦当劳发布“5G”新品:真香
  8. 海龟交易法则14_掌控心魔
  9. linux环境apache,php的安装目录
  10. GDI+中发生一般性错误的解决办法(转)
  11. Dev C++使用简明教程
  12. html图片随圆点下标轮播,基于JavaScript实现轮播图代码
  13. java基本数据从低到高_java基本数据类型之间的转换
  14. SCI期刊图片分辨率与清晰度修改,以及拼图
  15. 仿支付宝输入密码界面
  16. 2022-2028年全球与中国端点保护平台(EPP)行业市场深度调研及投资预测分析
  17. 对计算机学院建设性意见,计通学院云平台优质课程建设实施意见
  18. 【ACWing】2188. 无源汇上下界可行流
  19. 分享一个云端电脑(让你的电脑少装几十款软件)
  20. python爬取网页小说去除nbsp_python爬虫 爬取内容的时候nbsp 空格内容变成问号‘?’...

热门文章

  1. matlab的fft函数写法,matlab的fft函数的使用例子
  2. java mp3 暂停,Java MP3播放器 - 使用jLayer播放,暂停和搜索不能正常工作
  3. 架构师必备技能指南:SaaS(软件即服务)架构设计
  4. 理解 Azure 虚拟机的性能监视
  5. js下载文件及命名(兼容多浏览器)
  6. Search Insert Position
  7. 以太网数据包、IP包、TCP/UDP 包的结构(转)
  8. ubuntu编译安装php5 mysql nginx
  9. WINCE应用BINFS
  10. 显示android缓存文件,android – 使用ACTION_VIEW在缓存目录中打开文件