首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Patterns Matcher.group() vs Matcher.pattern().pattern()

Patterns Matcher.group() vs Matcher.pattern().pattern()
EN

Stack Overflow用户
提问于 2015-01-14 21:37:49
回答 1查看 67关注 0票数 0

我对以下两者之间的区别感到有点困惑:

代码语言:javascript
复制
Matcher m;
m.group();

代码语言:javascript
复制
Matcher m;
m.pattern().pattern();

它们都从列表中返回正确的匹配项,但我不明白两者之间的区别。

EN

回答 1

Stack Overflow用户

发布于 2015-01-14 21:41:14

完全不同的东西。

  • Matcher.pattern().pattern()返回已根据输入初始化此MatcherPatternString表示如果存在给定Pattern与给定文本

的匹配,则返回主组匹配器(索引0)

如果没有找到匹配项,Matcher.group()将抛出IllegalStateException,即如果没有包装在matcher.find()布尔条件中。

Matcher.group(int i)重载允许您为您在Pattern中定义的显式组指定组索引(从1开始),按其出现的层次顺序(带括号)。

如果索引组没有在Pattern中定义,这些重载将抛出IndexOutOfBoundException

示例

代码语言:javascript
复制
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());
}

输出

代码语言:javascript
复制
blah
.+

More

here接口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27944288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档