0
我有点困惑的区别如下:模式 - Matcher.group()VS Matcher.pattern()模式()
Matcher m;
m.group();
和
Matcher m;
m.pattern().pattern();
他们都从列表中返回正确的匹配,但我不明白两者之间的区别。
我有点困惑的区别如下:模式 - Matcher.group()VS Matcher.pattern()模式()
Matcher m;
m.group();
和
Matcher m;
m.pattern().pattern();
他们都从列表中返回正确的匹配,但我不明白两者之间的区别。
完全不同的东西。
Matcher.pattern().pattern()
返回从这个Matcher
已经针对一个输入文本初始化Pattern
的String
表示。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。