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小时内删除。
发表评论