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である.ここで しましょう. する の ではありません.