Memahami Java Regex Capturing Groups
Dalam coretan kod ini, kami menggunakan pustaka ekspresi biasa (regex) Java untuk mengekstrak bahagian rentetan. Regex ditakrifkan sebagai "(.)(d )(.)", di mana:
Pelaksanaan Regex
Apabila regex dilaksanakan terhadap rentetan "Pesanan ini dibuat untuk QT3000! OK?", ia menghasilkan keputusan berikut:
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000
Memahami Pengkuantiti Tamak
Pengkuantiti lalai yang digunakan dalam regex ialah tamak, bermakna ia memadankan seberapa banyak aksara yang mungkin untuk memenuhi kumpulan seterusnya. Dalam kes ini, ".*" sepadan dengan keseluruhan rentetan sehingga digit pertama ditemui, tidak meninggalkan aksara untuk kumpulan ketiga.
Menggunakan Pengkuantiti Enggan
Untuk memadankan hanya aksara yang diperlukan, kita boleh menggunakan pengkuantiti enggan, ditunjukkan dengan tanda soal. Menggantikan "(.)" dengan "(.?)" sepadan dengan bilangan aksara paling sedikit yang mungkin, menghasilkan output berikut:
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000
Kelebihan Menangkap Kumpulan
Kumpulan tangkapan membolehkan kami mengekstrak bahagian tertentu rentetan padanan untuk kegunaan selanjutnya. Dalam contoh ini, kita boleh mengakses nilai dipadankan setiap kumpulan melalui kaedah "kumpulan()" bagi objek "Matcher", seperti yang ditunjukkan dalam coretan kod di bawah:
<code class="java">Pattern pattern = Pattern.compile("(.*?)(\d+)(.*)"); Matcher matcher = pattern.matcher(line); if (matcher.find()) { System.out.println("group 1: " + matcher.group(1)); System.out.println("group 2: " + matcher.group(2)); System.out.println("group 3: " + matcher.group(3)); }</code>
Atas ialah kandungan terperinci Bagaimanakah Menangkap Kumpulan Berfungsi dalam Ungkapan Biasa Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!