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。