Java Regex - Grupları Yakalama

Grupları yakalama, birden çok karakteri tek bir birim olarak ele almanın bir yoludur. Gruplanacak karakterlerin bir parantez seti içine yerleştirilmesiyle oluşturulurlar. Örneğin, normal ifade (köpek) "d", "o" ve "g" harflerini içeren tek bir grup oluşturur.

Yakalama grupları, soldan sağa açılış parantezleri sayılarak numaralandırılır. Örneğin ((A) (B (C))) ifadesinde, bu tür dört grup vardır -

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

İfadede kaç grup olduğunu bulmak için, bir eşleştirme nesnesinde groupCount yöntemini çağırın. GroupCount yöntemi birint eşleştiricinin deseninde bulunan yakalama gruplarının sayısını gösterir.

Ayrıca her zaman tüm ifadeyi temsil eden özel bir grup 0 vardır. Bu grup, groupCount tarafından bildirilen toplama dahil değildir.

Misal

Aşağıdaki örnek, verilen alfanümerik dizeden bir rakam dizesinin nasıl bulunacağını gösterir -

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

Bu, aşağıdaki sonucu verecektir -

Çıktı

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