Java 正则 - 捕获组

Java 正则 - 捕获组 首页 / 正则入门教程 / Java 正则 - 捕获组

通过将要分组的字符放在一组括号内来创建它们。例如,正则表达式(Dog)创建一个包含字母“ d”,“ o”和“ g”的单个组。

捕获组通过从左到右计数其左括号进行编号。例如,在表达式(A)(B(C)中,存在四个这样的组-

  • ((A)(B(C)))
  • (A)
  • (B(C))
  • (C)

若要了解表达式中存在多少个组,请对Matcher对象调用groupCount方法。groupCount方法返回一个int,显示匹配器模式中存在的捕获组的数量。

还有一个特殊的组,组0,它始终表示整个表达式。此组不包括在groupCount报告的总数中。

Group 示例

以下示例说明如何从给定的字母数字字符串中查找数字字符串

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches {
   public static void main( String args[] ) {
      //要扫描的字符串以查找模式。
      String line = "This order was placed for QT3000! OK?";
      String pattern = "(.*)(\\d+)(.*)";

      //创建Pattern对象
      Pattern r = Pattern.compile(pattern);

      //创建匹配器对象。
      Matcher m = r.matcher(line);
      
      if (m.find( )) {
         System.out.println("Found value: " + m.group(0) );
         System.out.println("Found value: " + m.group(1) );
         System.out.println("Found value: " + m.group(2) );
      } else {
         System.out.println("NO MATCH");
      }
   }
}

这将产生以下输出-

无涯教程网

Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT300
Found value: 0

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

SQL必知必会 -〔陈旸〕

JavaScript核心原理解析 -〔周爱民〕

小马哥讲Spring核心编程思想 -〔小马哥〕

Redis核心技术与实战 -〔蒋德钧〕

动态规划面试宝典 -〔卢誉声〕

程序员的测试课 -〔郑晔〕

Web漏洞挖掘实战 -〔王昊天〕

说透低代码 -〔陈旭〕

后端工程师的高阶面经 -〔邓明〕

好记忆不如烂笔头。留下您的足迹吧 :)