Java Regex - Nhóm thu thập

Chụp nhóm là một cách để coi nhiều ký tự như một đơn vị duy nhất. Chúng được tạo ra bằng cách đặt các ký tự được nhóm bên trong một tập hợp các dấu ngoặc đơn. Ví dụ: biểu thức chính quy (dog) tạo một nhóm duy nhất chứa các chữ cái "d", "o" và "g".

Các nhóm bắt được đánh số bằng cách đếm các dấu ngoặc đơn mở đầu của chúng từ trái sang phải. Ví dụ: trong biểu thức ((A) (B (C))), có bốn nhóm như vậy -

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

Để biết có bao nhiêu nhóm hiện diện trong biểu thức, hãy gọi phương thức groupCount trên đối tượng so khớp. Phương thức groupCount trả về mộtint hiển thị số lượng nhóm bắt có trong mẫu của trình đối sánh.

Ngoài ra còn có một nhóm đặc biệt, nhóm 0, luôn đại diện cho toàn bộ biểu thức. Nhóm này không được bao gồm trong tổng số được báo cáo bởi groupCount.

Thí dụ

Ví dụ sau minh họa cách tìm một chuỗi chữ số từ chuỗi chữ và số đã cho:

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");
      }
   }
}

Điều này sẽ tạo ra kết quả sau:

Đầu ra

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