`

Java正则表达式中group()、group(i)、groupCount()

    博客分类:
  • java
 
阅读更多

 要弄清这三个方法,首先要弄清Java正则表达式中的捕获组的概念。捕获组也就是Pattern中以括号对“()”分割出的子Pattern。至于为什么要用捕获组呢,主要是为了能找出在一次匹配中你更关心的部分。

         捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 "(x)(y\\w*)(z)" 中,存在三个这样的组:  

1.   x

2.   y\\w*

3.   z

组零始终代表整个表达式。

之所以这样命名捕获组是因为在匹配中,保存了与这些组匹配的输入序列的每个子序列。捕获的子序列稍后可以通过 Back 引用在表达式中使用,也可以在匹配操作完成后从匹配器获取。

以 (?) 开头的组是纯的非捕获 组,它不捕获文本,也不针对组合计进行计数。

 

Example:

 

package pattern;

 

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

public class testRegex {

    public static void main(String[] args) {

        String regex = "(x)(y\\w*)(z)";

 

        String input = "exy123z,xy456z";

        Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);

        Matcher m = p.matcher(input);

 

        while (m.find()) {

            System.out.println(m.group(2));

        }

    }

}

 

运行结果:

y123

y456

分享到:
评论

相关推荐

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    RegexApplication/Default.aspx 正则表达式类的应用 RegexApplication/GetPageHtmlData.aspx 获取网页的内容 第10章(/10/) ASPNETValidator/Compare.aspx 比较验证 ASPNETValidator/...

    groupby:通过正则表达式对行进行分组

    分组根据正则表达式对行进行分组groupby (lostutils) 0.1.5Group lines based on a given regex.USAGE: groupby [FLAGS] [OPTIONS] <regex>FLAGS: --count-only Only show the count of matches per group....

    Java开发技术大全(500个源代码).

    leapYearByLogical.java 用逻辑表达式判断闰年 lowToUpper.java 小写字母转换成大写字母 lozengeStar.java 输出一个由*组成的菱形 multiplyTable.java 求乘法口诀表 narrowingConversion_1.java 缩减转换引发...

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    8、使用正则表达式查询 什么是查询? 怎么查的? 数据的准备如下: [sql] view plain copy create table STUDENT( STU_ID int primary KEY, STU_NAME char(10) not null, STU_AGE smallint unsigned not null,...

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    4.2.9 正则表达式匹配 4.2.10 Javascript 查询和$where 查询 4.2.11 count查询记录条数 4.2.12 limit限制返回记录数 4.2.13 skip 限制返回记录的起点 4.2.14 sort 排序 4.2.15 分页查询 ...

    深入云计算 MongoDB管理与开发实战详解pdf.part2

    4.2.9 正则表达式匹配 4.2.10 Javascript 查询和$where 查询 4.2.11 count查询记录条数 4.2.12 limit限制返回记录数 4.2.13 skip 限制返回记录的起点 4.2.14 sort 排序 4.2.15 分页查询 ...

    fromq:支持javascript中的linq函数之类的集合运算符

    该项目是在基础上扩展而来,代码已经重新修改,使支持Lambda,正则表达式,字符串的操作,增加了集合的操作except、intersect、union、join、all、any、some、indexOf、contains、sum、avg.除统计功能函数外,其他的...

    《10天掌握MongoDB》2012完整版.pdf[带书签]

    正则表达式 数组查询 数组查询-$SIZE 数组查询-$SLICE 数组查询-子项定位 数组查询-$ELEMMATCH 游标 $WHERE 排序分页 排序分页-排序比较的顺序 排序分页-分页示例 排序分页-不使用SKIP分页 结束语 第四天:使用索引 ...

    C#编程经验技巧宝典

    121 <br>0200 如何使用正则表达式验证电话号码 121 <br>0201 如何使用正则表达式验证输入密码条件 121 <br>0202 如何使用正则表达式验证邮政编号 121 <br>0203 如何使用正则表达式验证手机号 ...

    入门学习Linux常用必会60个命令实例详解doc/txt

    -g,--group=组:自行设定所属组,而不是进程目前的所属组。 -m,--mode=模式:自行设定权限模式 (像chmod),而不是rwxr-xr-x。 -o,--owner=所有者:自行设定所有者 (只适用于超级用户)。 -p,--...

    Mysql数据库设计.pdf

    = 不等于 <=> NULL安全的等于(NULL-safe) ⼩于 > ⼤于 ⼩于等于 >= ⼤于等于 BETWEEN 存在与指定范围 IN 存在于指点集合 IS NULL 为NULL IS NOT NULL 不为NULL LIKE 通配符匹配 REGEXP或者RLIKE 正则表达式匹配 %...

    Oracle_Database_11g完全参考手册.part3/3

    第8章 正则表达式搜索 8.1 搜索串 8.2 REGExP_SUBSTR 8.3 REGEXP_INSTR 8.4 REGEXP-LIKE 8.5 REPLACE和REGEXPRRPIACE 第9章 数值处理 9.1 三类数值函数 9.2 表示法 9.3 单值函数 9.3.1 加减乘除 9.3.2 NULL 9.3.3 ...

    Oracle_Database_11g完全参考手册.part2/3

    第8章 正则表达式搜索 8.1 搜索串 8.2 REGExP_SUBSTR 8.3 REGEXP_INSTR 8.4 REGEXP-LIKE 8.5 REPLACE和REGEXPRRPIACE 第9章 数值处理 9.1 三类数值函数 9.2 表示法 9.3 单值函数 9.3.1 加减乘除 9.3.2 NULL 9.3.3 ...

    MongoDB权威指南(中文版)高清

    785.5.2 地球不是二维平面 78第6章 聚合 796.1 count 796.2 distinct 796.3 group 806.3.1 使用完成器 826.3.2 将函数做为键使用 846.4 MapReduce 846.4.1 例1:找出集合中的所有键 856.4.2 例2...

    电子书:MongoDB权威指南(中文版)

    785.5.2 地球不是二维平面 78第6 章 聚合 796.1 count 796.2 distinct 796.3 group 806.3.1 使用完成器 826.3.2 将函数做为键使用 846.4 MapReduce 846.4.1 例1:找出集合中的所有键 856.4.2 例2...

    表单验证Validator v1.0(CHM) 下载

    24.自定义的正则表达式验证; 运行环境(客户端): 在Windows Server 2003下用IE6.0+SP1和Mozilla Firefox 1.0测试通过; 在Lunix RedHat 9下的Netscape测试通过; Validator 完整代码: /***************...

    asp.net面试题

    十三、为了实现a.aspx的URL重写,下面哪个正则表达式替换可以实现?( ) A. Regex.Replace(sUrl, @“/(\d+).aspx”, “a.aspx?ID=$0”, RegexOptions.IgnoreCase) B. Regex.Replace(sUrl, @“/(\d+).aspx”, “/a....

    SQL培训第一期

    1.8.10.1 oracle正则表达式:去除<></>格式 select REGEXP_REPLACE(title,'<[^>]*>','') title from exam_question 1.8.11 rank() over (partition by …) 1.8.11.1 语法 select organcode,score,ranknum from ( ...

    MySQL中文参考手册

    + 1.2.1 本手册中使用的约定 o 1.3 MySQL的历史 o 1.4 MySQL的主要特征 o 1.5 MySQL稳定性? o 1.6 顺应2000年 o 1.7 SQL一般信息和教程 o 1.8 有用的MySQL相关链接 * 2 MySQL 邮件列表及如何提问或报告错误...

    精髓Oralcle讲课笔记

    --(将sal的查询结果转化为字符串,与ename连接到一起,相当于Java中的字符串连接) 7、select ename||'afasjkj' from emp; --字符串的连接 8、select distinct deptno from emp; --消除deptno字段重复的值 9、...

Global site tag (gtag.js) - Google Analytics