java 正则匹配提取html纯文本

本文来自于我的个人博客: java 正则匹配提取html纯文本


做内容的大家都知道,从html中直接提取纯文本是一个很大的问题,现将我做的正则匹配贴上:


import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class TestReg {
	static String reg = "<[a-zA-Z]+.*?>([\s\S]*?)</[a-zA-Z]*>";
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "<p></p><p>&nbsp;&nbsp;&nbsp;&nbsp;我们以Buffer类开始对java.nio包的浏览历程。"
				+ "这些类是java.nio的构造基础。这个系列中,我们将跟随《java NIO》书籍一起深入研究缓冲区,"
				+ "了解各种不同的类型,并学会怎样使用。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;一个Buffer对象"
				+ "是固定数量的数据容器。其作用是一个存储器,或者分段运输区,在这里数据可被存储并在之后用于检索。"
				+ "</p><p>&nbsp;&nbsp;&nbsp;&nbsp;Buffer类的家谱:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;"
				+ "<img src="http://photo.jfq24.com/image/bigger/blog/server/upload/2014-07/user_2/13711406446068247.png" "
				+ "title="2014-07-27_1527.png"></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<strong>一,缓冲区基础</strong>"
				+ "</p><p>&nbsp;&nbsp;&nbsp; 1.缓冲区的属性:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
				+ "容量(capacity):缓冲区能够容纳的数据元素的最大数量,这一容量是在缓冲区被创建时设置的,并且永远不能被改变</p>"
				+ "<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上界(limit): 缓冲区的第一个不能被读或写的元素。"
				+ "或者说,缓冲区中现存元素的计数。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位置(position): "
				+ "下一个要被读或写的元素的索引,位置会自动由相应的get()和put()函数更新。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
				+ "&nbsp;&nbsp;&nbsp;标记(mark): 一个备忘位置,调用mark()来设定mark=position.调用reset()设定position=mark。"
				+ "标记在设定前是未定义的(undefied)。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这四个属性的关系如下:</p";
		Pattern p = Pattern.compile(reg, Pattern.MULTILINE);
		str = str.replace("&nbsp;", "");
		Matcher m = p.matcher(str);
		while(m.find()) {
			String data = m.group(1).trim();
			if(!"".equals(data)) {
				System.out.println(data);
			}
		}
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值