`

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

分享到:
评论

相关推荐

    使用Java正则表达式分析处理日志

    Java中的正则表达式主要通过`java.util.regex`包中的类来实现,如`Pattern`和`Matcher`。 在日志处理中,我们通常需要完成以下任务: 1. **过滤日志级别**:日志通常包含不同的级别,如DEBUG、INFO、WARN、ERROR等...

    Java正则表达式详细讲解

    在Java中,正则表达式是通过`java.util.regex`包提供的API来实现的。本讲解将深入探讨Java正则表达式的概念、语法以及常见用法。 ### 1. 正则表达式基础 正则表达式(Regular Expression)是一种模式,用来匹配一...

    java正则表达式学习

    在Java中,我们可以使用`String`类的`matches()`方法结合正则表达式来验证字符串。例如,判断一个字符串是否全由数字组成: ```java if(s.matches("\\d+")) { System.out.println("此字符串全部由数字组成"); } ...

    JAVA正则表达式实例教程.pdf

    - Java中的正则表达式主要通过`java.util.regex`包下的`Pattern`类与`Matcher`类实现。 **3.2 使用步骤** 1. **构造模式**:使用`Pattern.compile(regex)`方法创建`Pattern`对象。 - 示例:`Pattern p = Pattern....

    Java正则表达式的总结和一些小例子

    Java 正则表达式是 Java 编程语言中一个非常重要的组件,它可以用于文本显示、数据表示、查找键和许多其他目的。从 Java 1.4 开始,Java 核心 API 就引入了 java.util.regex 程序包,这是一个非常有价值的基础工具,...

    JAVA正则表达式实例教程

    - **`groupCount()`**:返回匹配器模式中的捕获组数。 - **`replaceAll(String replacement)`**:用给定的字符串替换所有匹配的部分。 - **`replaceFirst(String replacement)`**:只替换第一个匹配的部分。 - **`...

    JAVA正则表达式4种常用功能

    i <= m.groupCount(); i++) { System.out.println(m.group(i)); } } ``` 在上面的代码中,我们使用正则表达式`.+\\.([^\\.]*)$`来提取文件名,然后使用`Matcher`对象来匹配字符串。如果匹配成功,那么我们可以...

    java-regex正则表达式

    Java正则表达式是编程语言Java中用于处理文本模式匹配和替换的重要工具。它基于一套特殊的语法,允许程序员高效地检查字符串是否符合特定的模式,或者根据这些模式进行字符串的替换和提取。以下是对Java正则表达式...

    java中的正则表达式

    ### Java中的正则表达式详解 #### 一、引言 正则表达式是一种非常强大的文本处理工具,它能够帮助开发者高效地进行字符串的搜索、替换等操作。自JDK 1.4版本起,Java便引入了对正则表达式的支持。本文将详细介绍...

    Java正则表达式提取字符的方法实例

    在Java中,通过java.util.regex包下的Pattern和Matcher两个类可以实现正则表达式的相关操作。 在提供的示例中,目标是提取车牌号码中的最后一个数字。例如,对于车牌号“苏A876X”,需要提取的是数字“6”。这一...

    正则表达式知识示例详解源代码(java版)

    正则表达式(Regular Expression),简称regex,是用于在文本中匹配特定模式的强大工具,尤其在编程语言如Java中有着广泛的应用。它可以帮助我们进行数据验证、搜索、替换等操作。下面将通过Java代码示例深入讲解正则...

    Java正则表达式1

    在Java中,正则表达式是通过java.util.regex包中的Pattern和Matcher类来实现的。Pattern类用于编译正则表达式,而Matcher类用于执行正则表达式的匹配操作。 Pattern类 Pattern类是java.util.regex包中的一个final...

    Java正则表达式教程

    在Java中,正则表达式通常用作字符串操作的一部分,特别是在`java.util.regex`包中的`Pattern`和`Matcher`类中。 2. **正则表达式实例**: - 单纯的字符串,如"Hello World",就是一个简单的正则表达式,匹配自身...

    java正则表达式实例教程

    - `groupCount()`:返回匹配器模式中的捕获组数。 - `replaceAll(String replacement)`:用给定的替换字符串替换所有匹配的部分。 - `replaceFirst(String replacement)`:用给定的替换字符串替换第一个匹配的...

    Java正则表达式的总结和一些小例

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配、搜索、替换等操作来处理文本。自Java 1.4版本起,Java引入了`java.util.regex`包,该包提供了Pattern和Matcher两个核心类,以...

    C#中的正则表达式详解

    4. **Group 类**:表示正则表达式匹配结果中的捕获组。当正则表达式中包含括号时,这些括号内的内容会被视为一个组,而 Group 类则提供了对这些组的访问方式。例如,可以使用 Group 类的 Count 属性来获取捕获组的...

    JAVA正则表达式教程

    在Java中,正则表达式的功能主要通过`java.util.regex`包来实现。 ##### 1.2 正则表达式的优势 - **高效性**:通过简洁的语法结构,可以快速完成复杂的文本处理任务。 - **灵活性**:支持多种模式匹配,能够应对...

Global site tag (gtag.js) - Google Analytics