2015-01-14 57 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