2015-01-14 92 views

回答

1

完全不同的東西。

  • Matcher.pattern().pattern()返回從這個Matcher已經針對一個輸入文本初始化PatternString表示。
  • Matcher.group()返回主組匹配(索引0)如果有給定Pattern的針對給定的文本

Matcher.group()匹配將引發IllegalStateException如果沒有發現匹配,即,如果不包裹在一個matcher.find()布爾條件。

Matcher.group(int i)重載允許您指定您在Pattern(從1開始)中定義的顯式組的組索引,按其外觀層次順序(帶括號)。

如果您的Pattern中未定義索引組,則那些超載將拋出IndexOutOfBoundException

Pattern p = Pattern.compile(".+"); 
String input = "blah"; 
Matcher m = p.matcher(input); 
if (m.find()) { 
    System.out.println(m.group()); 
    System.out.println(m.pattern().pattern()); 
} 

輸出

blah 
.+ 

更多

API here