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