Matcher.group是针对()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西即匹配的第一个子表达式,group(2)指的第二个括号里的东西即匹配的第二个子表达式.

例如:

public class TestMatcher {

    public static final String STR_PATTERN = "(\\d{3,5})([a-z]{2})";

    public static void main(String[] args) {
String str = "123aa-34345bb-234cc-00";
Pattern regx = Pattern.compile(STR_PATTERN);
Matcher match = regx.matcher(str);
int count = 1;
/**
* match.find()
* 查找与该模式匹配的输入序列的下一个子序列,返回boolean型,
* 如果输入串中有多个子序列匹配,则每次find时从上一次匹配操作没有匹配的第一个字符开始
* 如果匹配成功,则可以通过start、end 和 group 方法获取更多信息
* 也就是说start、end和group都是针对find的结果即匹配的子串进行操作
*/
while(match.find()) {
System.out.println("***************************第" + count + "次匹配********************************");
System.out.println("第" + count + "次查找与该模式匹配的输入序列的下一个子序列");
System.out.println("第" + count + "次匹配的子串:" + match.group());
System.out.println("第" + count + "次匹配的子串中第1个子序列" + match.group(1));
System.out.println("第" + count + "次匹配的子串中第2个子序列" + match.group(2));
count++;
}
System.out.println("***************************match.groupCount()****************************************");
System.out.println("分组即有几个括号:match.groupCount()=" + match.groupCount());
}
}

输出结果如下:

***************************第1次匹配********************************
第1次查找与该模式匹配的输入序列的下一个子序列
第1次匹配的子串:123aa
第1次匹配的子串中第1个子序列123
第1次匹配的子串中第2个子序列aa
***************************第2次匹配********************************
第2次查找与该模式匹配的输入序列的下一个子序列
第2次匹配的子串:34345bb
第2次匹配的子串中第1个子序列34345
第2次匹配的子串中第2个子序列bb
***************************第3次匹配********************************
第3次查找与该模式匹配的输入序列的下一个子序列
第3次匹配的子串:234cc
第3次匹配的子串中第1个子序列234
第3次匹配的子串中第2个子序列cc
***************************match.groupCount()****************************************
分组即有几个括号:match.groupCount()=2

  

最新文章

  1. [算法总结]three-way partition
  2. Calculator(1.5)
  3. redis 在windows 上的安装与使用
  4. DLNA介绍(包含UPnP,2011/6/20 更新)
  5. 手机自动化测试:Appium代码之Logger
  6. File的getParentFile()和getParent()
  7. c#错误cs0006
  8. 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(视频总揽和功能演示)
  9. Mac OS X 显示和隐藏文件
  10. Tensorflow实现手写体分类(含dropout)
  11. lapis 项目添加prometheus 监控集成grafana
  12. Spring-boot logback日志处理
  13. OCiOS开发:音频播放器 AVAudioPlayer
  14. 深度解析eclipse控制台
  15. IAAS,SAAS,PAAS, CaaS的区别
  16. 激活pycharm
  17. DVWA:环境搭建
  18. 在JavaScript中重写jQuery对象的方法
  19. 3DShader之法线贴图(normal mapping)
  20. 007-Shell test 命令,[],[[]]

热门文章

  1. JZOJ 3463. 【NOIP2013模拟联考5】军训
  2. hadoop核心组件概述及hadoop集群的搭建
  3. Tame Me【驯服我】
  4. B1019 数字黑洞 (20分)
  5. C#入门篇6-4:字符串操作 string分割字符串效率比较
  6. 42、通过ontouch检测expandableListview的单击、长按、列表滚动
  7. MongoDB快速入门学习笔记6 MongoDB的文档删除操作
  8. java 二叉树递归遍历算法
  9. nmon系统监控
  10. 【bzoj2427】[HAOI2010]软件安装 Tarjan+树形背包dp