java正则表达式

package com.cg.tests;

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

import org.junit.Test;

public class TestPatternMatcher {

	@Test
	public void TestReplaceAll(){
		String s="Hello World ...";
		
		String s2=s.replaceAll("\\.", "");
		System.out.println(s2);
		
		String s3=s.replaceAll("\\S", "");
		System.out.println(s3);
		
		String sLineSep = System.getProperty("line.separator");
		String s4 = "abcdefg" + sLineSep + "中国";
		System.out.println(s4);
		System.out.println(s4.replace(sLineSep, "换行"));
		
		String s5 = "1985-01-17,在这个日期23423-2384-出生";
		Pattern pattern = Pattern.compile("\\d+");
		Matcher m = pattern.matcher(s5);
		while(m.find()){
			System.out.println(m.group()+"["+m.start()+"]-["+m.end()+"]");
		}

		System.out.println("###################");
		
		String s6="just do do do do it~!123abc@@1234efg ";
//		Pattern pdo=Pattern.compile("do\\s(do\\s)+");
		Pattern pdo=Pattern.compile("\\d+(\\w+)");
		Matcher mdo = pdo.matcher(s6);
		while (mdo.find()) {
			for (int i = 0; i < mdo.groupCount(); i++) {
//				System.out.println(mdo.group() + "[" + mdo.start() + "]-["
//						+ mdo.end() + "]");
				System.out.println(i+":"+mdo.group(i));
			}
		}
		
	}
	
	
	@Test
	public void testGreedy(){
		String html = "<table> <tr><td>123ksdjfsld</td><td>34243kdljsfkldsf</td>kdlfjsdf</tr></table";
		Matcher m = Pattern.compile("<td>((\\d+)(\\w+))</td>").matcher(html);	//非贪婪模式
		while(m.find()){
			int cnt = m.groupCount();
			System.out.println(cnt);
			for(int i=0;i<=cnt;i++){
				System.out.println("group" + i + ":" + m.group(i));
			}
		}
	}
	@Test
	public void testGreedy2(){
		String html = "klsdjfl8394387592347ksjd";
		Matcher m = Pattern.compile("\\d+?").matcher(html);	//非贪婪模式
		while(m.find()){
			System.out.println(m.group());
		}
	}
	
}

  

posted @ 2012-07-09 22:43  庚武  Views(210)  Comments(0Edit  收藏  举报