Java Regex - Menangkap Grup
Menangkap grup adalah cara untuk memperlakukan banyak karakter sebagai satu unit. Mereka dibuat dengan menempatkan karakter yang akan dikelompokkan di dalam satu set tanda kurung. Misalnya, ekspresi reguler (anjing) membuat satu grup yang berisi huruf "d", "o", dan "g".
Grup penangkap diberi nomor dengan menghitung tanda kurung buka dari kiri ke kanan. Dalam ekspresi ((A) (B (C))), misalnya, ada empat kelompok seperti itu -
- ((A)(B(C)))
- (A)
- (B(C))
- (C)
Untuk mengetahui berapa banyak grup yang ada dalam ekspresi, panggil metode groupCount pada objek matcher. Metode groupCount mengembalikan fileint menunjukkan jumlah kelompok penangkap yang ada dalam pola pencocok.
Ada juga grup khusus, grup 0, yang selalu mewakili seluruh ekspresi. Grup ini tidak termasuk dalam total yang dilaporkan oleh groupCount.
Contoh
Contoh berikut menggambarkan cara menemukan string digit dari string alfanumerik yang diberikan -
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");
}
}
}
Ini akan menghasilkan hasil sebagai berikut -
Keluaran
Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT300
Found value: 0