
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去那呢?
回答的人一定要自己试过在回答啊!! 展开
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去那呢?
回答的人一定要自己试过在回答啊!! 展开
1个回答
展开全部
(\\w+\\s?)+
你这个是贪婪匹配,
匹配到“Love ”的时候会尝试继续匹配,它发现“Live ”也能匹配成功,
会把组信息更新成最后匹配的。
还有m.groupCount() ,这个只是获取你的正则表达式的分组数,
跟你匹配不匹配没关系,你正则表达式一个括号,就返回1.
你这个是贪婪匹配,
匹配到“Love ”的时候会尝试继续匹配,它发现“Live ”也能匹配成功,
会把组信息更新成最后匹配的。
还有m.groupCount() ,这个只是获取你的正则表达式的分组数,
跟你匹配不匹配没关系,你正则表达式一个括号,就返回1.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |