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的更多相关文章

  1. java之Matcher类详解

    在JDK 1.4中,Java增加了对正则表达式的支持. java与正则相关的工具主要在java.util.regex包中:此包中主要有两个类:Pattern.Matcher. Matcher  声明: ...

  2. JAVA正则表达式:Pattern类与Matcher类详解(转)

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  3. 正则表达式:Pattern类与Matcher类详解

    一.捕获组的概念 捕获组可以通过从左到右计算其开括号来编号,编号是从1 开始的.例如,在表达式((A)(B(C)))中,存在四个这样的组: 1     ((A)(B(C))) 2     (A) 3  ...

  4. JAVA正则表达式:Pattern类与Matcher类详解

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  5. [转] JAVA正则表达式:Pattern类与Matcher类详解(转)

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和 Matcher Pattern 一个Pattern是一个正则表达式经编译后的 ...

  6. Matcher类详解

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一个正则表达式经编 ...

  7. QAction类详解:

    先贴一段描述:Qt文档原文: Detailed Description The QAction class provides an abstract user interface action tha ...

  8. java之StringBuffer类详解

    StringBuffer 线程安全的可变字符序列. StringBuffer源码分析(JDK1.6): public final class StringBuffer extends Abstract ...

  9. java之AbstractStringBuilder类详解

    目录 AbstractStringBuilder类 字段 构造器 方法   public abstract String toString() 扩充容量 void  expandCapacity(in ...

随机推荐

  1. 力扣题目汇总(丑数,重复N的元素,求众数)

    丑数 1.题目描述 编写一个程序判断给定的数是否为丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例 1: 输入: 6 输出: true 解释: 6 = 2 × 3 示例 2: 输入: 8 ...

  2. Android 服务入门

    前言:硬着头皮把数据库SQLite看完了,接下来就是android服务了,因为自己本身就是菜鸟,所以呢,也只是做做笔记,技术上的东西就别指望我了. 1.什么是服务呢?举个例子,百度地图,美团外卖,OF ...

  3. 继承Thread类使用多线程

    java实现多线程有两种方式,一种是继承Thread类,另外一种就是实现Runnable接口. 两种实现方法的优缺点: 使用Thread类实现多线程局限性就是不支持多继承,因为java是不支持类多继承 ...

  4. oracle JOB 查询 添加 修改 删除

    -------------查询JOB----------------- select job, what, next_date, next_sec, sysdate, failures, broken ...

  5. requireJS入门学习

    前言 最近网上.群里各种随便看,随便学.暑期实习还没找到,昨天开题过了,好好学习吧.最近一直看到前端的ADM,CMD规范,然后网上各种找资料看,看了好几个牛人的博客,写的很好,然后自我感觉了解了点,介 ...

  6. C#入门篇6-4:字符串操作 string分割字符串效率比较

    //分割字符串效率比较 public static void Fund() { //1.用string.Split方法 //a.字节数组: //625毫秒/百万次 string str1 = &quo ...

  7. 图说不为人知的IT传奇故事-4-王安用一生来跟IBM抗衡

    此系列文章为“图说不为人知的IT传奇故事”,各位大忙人可以在一分钟甚至几秒内了解把握整个内容,真可谓“大忙人的福利”呀!!希望各位IT界的朋友在钻研技术的同时,也能在文学.历史上有所把握.了解这些故事 ...

  8. Vue声明渲染以及axios实例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  9. Python-S9-Day124-爬虫&微信

    01 今日内容概要 02 内容回顾:flask上下文 03 内容回顾:多app应用 04 内容回顾:面向对象和数据库 05 内容回顾:爬虫 06 Web微信:获取二维码(一) 07 Web微信:获取二 ...

  10. day02_03.五个数字一行输出

    第3题 5个数字一行输出 每当你做一道题目时,记住要明确你的目的是什么 你的代码执行出来会是一个什么效果 然后根据你想要的这个效果去编辑代码 题目:输出1~100(不包含100)之间的偶数,5个数字一 ...