java正则表达式关于分组的问题,我能理解group(0)是匹配的全组

Patternp=Pattern.compile("(\\w+\\s?)+");Matcherm=p.matcher("LoveLive");m.find();Syste... Pattern p = Pattern.compile("(\\w+\\s?)+");
Matcher m = p.matcher("Love Live ");
m.find();
System.out.println("找到了吗?" + m.matches() + ", 找到多少组:" + m.groupCount());
System.out.println(m.group(1));

jdk1.8 group(0)是整个字符串
group(1)是Live
为什么只找到一组?而Love去那呢?
回答的人一定要自己试过在回答啊!!
展开
 我来答
_诗礼_
2016-06-03 · 超过69用户采纳过TA的回答
知道小有建树答主
回答量:184
采纳率:50%
帮助的人:107万
展开全部
(\\w+\\s?)+
你这个是贪婪匹配,
匹配到“Love ”的时候会尝试继续匹配,它发现“Live ”也能匹配成功,

会把组信息更新成最后匹配的。
还有m.groupCount() ,这个只是获取你的正则表达式的分组数,

跟你匹配不匹配没关系,你正则表达式一个括号,就返回1.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式