文档章节

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

dinggosumsung
 dinggosumsung
发布于 2017/04/26 16:50
字数 298
阅读 12
收藏 0

要弄清这三个方法,首先要弄清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

本文转载自:

dinggosumsung
粉丝 0
博文 34
码字总数 2423
作品 0
中山
私信 提问
java.util.regex Pattern 正则

/**String 中 replaceAll(),matches(),split() 等方法,都是调用Pattern中的方法。学习了,瞬间觉得Pattern强大了 public String replaceAll(String regex, String replacement) {return Pat......

happycode
2014/04/02
0
1
JAVA 正则表达式 (超详细)

(PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇。作者是个正真有功力的人,阅读愉快)   在Sun的Java JDK 1.40版本中...

毛朱
2012/10/25
0
1
JAVA正则表达式(详细,转载内容)

在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包。   可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表...

TracyZhang
2012/06/25
0
0
JAVA 正则表达式 (超详细) .

在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包。   可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表...

zilongoschina
2013/12/07
0
1
正则表达式(四):Java regex

以下示例所使用 Java 版本为: 1.8.0 有了上一章 python 中的 re 模块的铺垫(正则表达式(三):python re模块),对于 Java 中正则的使用理解上会简单许多。 Java 作为一种被广泛使用的编程语...

zhipingChen
2018/07/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

威胁快报|新兴挖矿团伙借助shodan作恶,非web应用安全再鸣警钟

近日,阿里云安全发现了一个使用未授权访问漏洞部署恶意Docker镜像进行挖矿的僵尸网络团伙。我们给这一团伙取名为Xulu,因为该团伙使用这个字符串作为挖矿时的用户名。 Xulu并不是第一个攻击...

阿里云官方博客
20分钟前
3
0
MD5 加密需要注意编码格式!!!

相信做过MD5加密的童鞋都遇到过字符编码的坑,一般加密出来的结果和其他人不一样都是字符编码不一致导致的,比如类文件的字符编码、浏览器的字符编码等和对方不一致,所以就需要转码统一字符...

jason_kiss
22分钟前
2
0
python中字符串的操作

https://www.jianshu.com/p/7fc851b6a7ee

writeademo
32分钟前
1
0
如何制定 Java 性能调优标准?

想让你的程序更快更稳,但是系统经常出各种 bug,无从下手?Java 性能调优全攻略来啦! 我有一个朋友,有一次他跟我说,他们公司的系统从来没有经过性能调优,功能测试完成后就上线了,线上也...

Java领航员
32分钟前
2
0
java博客项目

项目地址:https://github.com/otale/tale 项目演示地址:https://tale.biezhi.me/ 项目介绍:Tale使用轻量级mvc框架Blade进行开发,默认主题使用漂亮的pinghsu, 特征 设计简洁,界面美观 ...

编程资源库
33分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部