import java.util.regex.*;

public class PatternMatcher {
	static void print(String s){
		System.out.println(s);
	}

	public static void main(String[] args) throws Exception {
		// 生成一个Pattern,同时编译一个正则表达式
		Pattern p = Pattern.compile("[/]+");
		//用Pattern的split()方法把字符串按"/"分割
		String s="/aaa/bbb//ccc///ddd////eee/fff/";
		String[] result = p.split(s);
		for (int i=0; i<result.length; i++){
			print(result[i]+","+result[i].length());
		}

		print("---------------------");
		 result = p.split(s,3);//把字符串从左到右分割为3段
		for (int i=0; i<result.length; i++){
			print(result[i]+","+result[i].length());
		}

		p = Pattern.compile("abc");

		Matcher m = p.matcher("abcabcaaabcababacabcaaa");
		StringBuffer sb = new StringBuffer();
		int i=0;
		//使用find()方法查找第一个匹配的对象
		boolean r = m.find();
		//使用循环将句子里所有的kelvin找出并替换再将内容加到sb里
		while(r) {
			i++;
			m.appendReplacement(sb, "abc");
		print("第"+i+"次匹配后sb的内容是："+sb);
			//继续查找下一个匹配对象
			r = m.find();
		}

		//最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里；
		m.appendTail(sb);
		print("调用m.appendTail(sb)后sb的最终内容是:"+sb); 

	}
} 

