- Java Regex 教程
- Java Regex - 主页
- Java Regex - 概述
- Java Regex - 捕获组
- Java Regex - MatchResult 接口
- Java Regex - Pattern 类
- Java Regex - Matcher 类
- PatternSyntaxException 类
- Java Regex 示例
- Java Regex - 字符
- Java Regex - 字符类
- 预定义的字符类
- POSIX 字符类
- Java Regex - JAVA 字符类
- Unicode 字符类
- Java Regex - 边界匹配器
- Java Regex - 贪婪量词
- Java Regex - 勉强量词
- Java Regex - 独占量词
- Java Regex - 逻辑运算符
- Java Regex 有用资源
- Java Regex - 快速指南
- Java Regex - 有用资源
- Java Regex - 讨论
Java Regex - 捕获组
捕获组是一种将多个字符视为一个单元的方法。通过将要分组的字符放在一组括号内来创建它们。例如,正则表达式 (dog) 创建了一个包含字母“d”、“o”和“g”的单个组。
捕获组按从左到右的顺序编号,依次计算其左括号。例如,在表达式 ((A)(B(C))) 中,有四个这样的组 −
- ((A)(B(C)))
- (A)
- (B(C))
- (C)
要找出表达式中存在的组数,请对匹配器对象调用 groupCount 方法。groupCount 方法返回一个 **int**,表示匹配器模式中存在的捕获组数。
还有一个特殊组,组 0,它始终表示整个表达式。此组不包括在 groupCount 报告的总数中。
示例
以下示例说明了如何从给定的字母数字字符串中查找数字字符串 −
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches {
public static void main( String args[] ) {
// String to be scanned to find the pattern.
String line = "This order was placed for QT3000! OK?";
String pattern = "(.*)(\\d+)(.*)";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
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
广告