当前位置: 移动技术网 > IT编程>开发语言>Java > Java实现从Html文本中提取纯文本的方法

Java实现从Html文本中提取纯文本的方法

2019年07月19日  | 移动技术网IT编程  | 我要评论

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;// 返回文本字符串
	}

4、代码三: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 directive
	 delegator.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文本中提取纯文本的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网