捕获组

捕获组是把多个字符当一个单独单元进行处理的方法,它通过对括号内的字符分组来创建。 例如,正则表达式(dog)创建了单一分组,组里包含"d", "o", 和"g"。 捕获组是通过从式至右计算其开括号来编号。例如,在表达式((A)(B(C)),有四个这样的组:

  • ((A)(B(C))
  • (A)
  • (B(C))
  • (C) 可以通过调用mather对象的groupCount方法来查看表达式有多少个分组。groupCount方法返回一个int值,表示matcher对象当前有多少个捕获组。 还有一个特殊的组(group(0)),它总是代表整个表达式。该组不包括在groupCount的返回值中。

实例

下面的例子说明如何从一个给定的字符串找到数字串:

    @org.junit.Test
    public void test32() {
        String line = "This order was placed for QT3000! OK?";
        String pattern = "(\\D*)(\\d+)(.*)";

        Pattern r = Pattern.compile(pattern);
        Matcher matcher = r.matcher(line);

        if (matcher.find()) {
            System.out.println("Found Value: " + matcher.group(0));
            System.out.println("Found Value: " + matcher.group(1));
            System.out.println("Found Value: " + matcher.group(2));
            System.out.println("Found Value: " + matcher.group(3));
        }
    }

results matching ""

    No results matching ""