JAva.lang.IllegalStateException:No match foundの解析的解決

1698 ワード

 java      ,        ,     ,            
java.lang.IllegalStateException: No match found
 
  
import java.util.regex.*;
public class test_rex {


	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub
		String text = "Kelvin Li and Kelvin Chan are both working in Kelvin Chen's KelvinSoftShop company";
		String reg = "Kevin";
		Pattern pattern = Pattern.compile(reg);
		Matcher matcher = pattern.matcher(text);
		System.out.println(matcher.group());
		//   
		//////////////////////////////////////////////////
		//   
			Pattern p = Pattern.compile("ca+t");  
			Matcher m = p.matcher("one cat,two caats in the yard, caaats"); 
			while(m.find()){
			System.out.println(m.group());
			}
			
			//System.out.println("             :"+m.groupCount());
		
	}


}

のコードは、2つの に かれています. 1の は った で、 2の は しいので、find を してから つける があります.Java apiドキュメントで、 のように に きます.
 group
public String group(int group)

に る
の に のグループによって された サブシーケンス.
したがって、マッチング 、すなわちfind() を にします. しい :
while( m.find() ){
	System.out.println(m.group());
}

groupCountはキャプチャグループの です. !キャプチャグループは、 の であり、()はキャプチャグループです.(ca)(t)このとき2つのキャプチャグループは,jdk 1.7で にサポートされている きのキャプチャグループもある.(cat)のキャプチャグループは1であり,catのキャプチャグループは0であり, が の であることを す. group(n)とは、n のキャプチャグループに で したキャプチャ を す.(ca)(t)についてgroup(2)は するtである.ここで しましょう. する の ではありません.