Java 实现从Html ⽂本中提取纯⽂本
1、应⽤场景:从⼀份html ⽂件中或从String (是html 内容)中提取纯⽂本,去掉⽹页标签;
2、代码⼀:replaceAll 搞定
3、代码⼆:正则表达式搞定
3、代码三:HTMLEditorKit.ParserCallback 搞定,Java ⾃带的类
[java]
01. //从html 中提取纯⽂本  02. public  static  String StripHT(String strHtml) {  03.      String txtcontent = placeAll("</?[^>]+>", ""); //剔出<html>的标签    04.        txtcontent = placeAll("<a>\\s*|\t|\r|\n</a>", "");//去除字符串中的空格,回车,换⾏符,制表符    05.        return  txtcontent;  06.    }  [java]
01. //从html 中提取纯⽂本  02.    public  static  String Html2Text(String inputString) {  03.        String htmlStr = inputString; // 含html 标签的字符串  04.        String textStr = "";  05.        Pattern p_script;  06.        Matcher m_script;  07.        Pattern p_style;  08.        jav
Matcher m_style;  09.        Pattern p_html;  10.        Matcher m_html;  11.        try  {  12.
String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; // 定义script 的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>  13.
String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style 的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>  14.            String regEx_html = "<[^>]+>"; // 定义HTML 标签的正则表达式  15.            p_script = Patternpile(regEx_script, Pattern.CASE_INSENSITIVE);  16.            m_script = p_script.matcher(htmlStr);  17.            htmlStr = placeAll(""); // 过滤script 标签  18.            p_style = Patternpile(regEx_style, Pattern.CASE_INSENSITIVE);  19.            m_style = p_style.matcher(htmlStr);  20.            htmlStr = placeAll(""); // 过滤style 标签  21.            p_html = Patternpile(regEx_html, Pattern.CASE_INSENSITIVE);  22.            m_html = p_html.matcher(htmlStr);  23.            htmlStr = placeAll(""); // 过滤html 标签  24.            textStr = htmlStr;  25.        } catch  (Exception e) {println("Html2Text: " + e.getMessage()); }  26.        //剔除空格⾏  27.        placeAll("[ ]+", " ");  28.        placeAll("(?m)^\\s*$(\\n|\\r\\n)", "");  29.        return  textStr;// 返回⽂本字符串  30.    }
[java]
01. package  com.util;  02.  03. import  java.io.*;  04. import  html.*;  05. import  html.parser.*;  06.  07. public  class  Html2Text extends  HTMLEditorKit.ParserCallback {  08.      StringBuffer s;  09.  10.      public  Html2Text() {}  11.  12.      public  void  parse(Reader in) throws  IOException {  13.        s = new  StringBuffer();  14.        ParserDelegator delegator = new  ParserDelegator();  15.        // the third parameter is TRUE to ignore charset directive  16.        delegator.parse(in, this , Boolean.TRUE);  17.      }  18.  19.      public  void  handleText(char [] text, int  pos) {
20.        s.append(text);
21.      }
22.
23. public String getText() {
24. String();
25.      }
26.
java修改html文件
27. public static void main (String[] args) {
28. try {
29. // the HTML to convert
30. //Reader in=new StringReader("string");
31.          FileReader in = new FileReader("java-new.html");
32.          Html2Text parser = new Html2Text();
33.          parser.parse(in);
34.          in.close();
35.          System.out.Text());
36.        }
37. catch (Exception e) {
38.            e.printStackTrace();
39.        }
40.      }
41. }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。