正则表达式,中文断句

直接看源码,就不多解释了

package com.xjtu.bysj;


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


public class SplitSentence {
	// 把一段完整的文字分为一句一句话,现在默认是以!|!|。|\\.|;|;|,|,开始以!|!|。|\\.|;|;|,|,结束的最短的部分
	public static List<String> getSentenceFromParagraph(StringBuffer paragraph) {


		String flagStr = "!|!|。|\\.|;|;|,|,";
		List<String> result = new ArrayList<String>();
		Pattern pattern = Pattern.compile(".*?" + "(" + flagStr + ")");


		while (true) {
			Matcher matcher = pattern.matcher(paragraph);
			if (matcher.find()) {
				result.add(matcher.group().toString());
				paragraph = paragraph.replace(paragraph.indexOf(matcher.group()
						.toString()), paragraph.indexOf(matcher.group()
						.toString())
						+ matcher.group().toString().length(), "");
			} else
				break;
		}
		return result;
	}


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StringBuffer buffer = new StringBuffer(
				"大雁塔位于陕西省西安市城南大慈恩寺内,是全国著名的古代建筑,被视为古都西安的象征;相传是玄奘大法师从印度(古天竺)取经回来后,专门从事译经和藏经之处。因仿印度雁塔样式的修建故名雁塔。由于后来又在长安荐福寺内修建了一座较小的雁塔,为了区别,人们就把慈恩寺塔叫大雁塔,荐福寺塔叫小雁塔,一直流传至今。");
		;
		List<String> result = getSentenceFromParagraph(buffer);
		for (int m = 0; m < result.size(); m++) {
			System.out.println(result.get(m));
		}
	}
}
执行结果:

大雁塔位于陕西省西安市城南大慈恩寺内,
是全国著名的古代建筑,
被视为古都西安的象征;
相传是玄奘大法师从印度(古天竺)取经回来后,
专门从事译经和藏经之处。
因仿印度雁塔样式的修建故名雁塔。
由于后来又在长安荐福寺内修建了一座较小的雁塔,
为了区别,
人们就把慈恩寺塔叫大雁塔,
荐福寺塔叫小雁塔,
一直流传至今。

dml@2013.12.12

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值