Matcher类详解2-group
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
Matcher类详解2-group的更多相关文章
- java之Matcher类详解
在JDK 1.4中,Java增加了对正则表达式的支持. java与正则相关的工具主要在java.util.regex包中:此包中主要有两个类:Pattern.Matcher. Matcher 声明: ...
- JAVA正则表达式:Pattern类与Matcher类详解(转)
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- 正则表达式:Pattern类与Matcher类详解
一.捕获组的概念 捕获组可以通过从左到右计算其开括号来编号,编号是从1 开始的.例如,在表达式((A)(B(C)))中,存在四个这样的组: 1 ((A)(B(C))) 2 (A) 3 ...
- JAVA正则表达式:Pattern类与Matcher类详解
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- [转] JAVA正则表达式:Pattern类与Matcher类详解(转)
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和 Matcher Pattern 一个Pattern是一个正则表达式经编译后的 ...
- Matcher类详解
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一个正则表达式经编 ...
- QAction类详解:
先贴一段描述:Qt文档原文: Detailed Description The QAction class provides an abstract user interface action tha ...
- java之StringBuffer类详解
StringBuffer 线程安全的可变字符序列. StringBuffer源码分析(JDK1.6): public final class StringBuffer extends Abstract ...
- java之AbstractStringBuilder类详解
目录 AbstractStringBuilder类 字段 构造器 方法 public abstract String toString() 扩充容量 void expandCapacity(in ...
随机推荐
- 【php】如何配置自主域名腾讯企业邮箱
腾讯企业邮配置 protocal ssl smtp port 465 host smtp.exmail.qq.com user email account passwd email passwd
- [译]The Python Tutorial#10. Brief Tour of the Standard Library
[译]The Python Tutorial#Brief Tour of the Standard Library 10.1 Operating System Interface os模块为与操作系统 ...
- 循环(while、for)
写重复的代码是程序员最不耻的行为,那么如何做到不用写重复代码又能让程序重复一段代码多次呢,循环语句就派上用场拉…… 一.while 循环 # while 语法结构 while 条件: 执行代码.... ...
- python---列表(list)基本操作
列表基本操作:增.删.查.改等其他操作 创建列表: list1 = ["a","b","c","d"] name_lis ...
- excel VBA 将文本数值转换为数字格式(单元格中数据左上角是绿三角,鼠标点上有叹号标示)
Range("A6").SelectSelection.CopyRange("A10:A60").SelectRange(Selection, Selectio ...
- 2940: [Poi2000]条纹(Multi_SG)
2940: [Poi2000]条纹 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 114 Solved: 72[Submit][Status][Dis ...
- SSH进阶之路
[SSH进阶之路]Hibernate基本原理(一) 在开始学Hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装.一句不难,难道是真的不难还是眼高手低 ...
- C# 引用访问权限
同样代码表现的不同行为 创建基类(Super)和派生类(Sub)每个类有一个字段field和一个公共方法getField,并且使用内联的方式初始化为1,方法getField返回字段field.C#和J ...
- UVALive 5033 I'm Telling the Truth 二分图最大匹配(略有修改)
I - I'm Telling the Truth Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu ...
- Web进程被kill掉后线程还在运行怎么办?
目录 背景描述 原因分析 处理方案 参考 背景描述 系统有一个配置表,系统在启动后会启动一个线程,每隔5分钟将配置表里所有的数据更新到内存中. 系统是通过jenkins构建(直接kill掉Web进程, ...