Rumah > Java > javaTutorial > Bagaimanakah Menangkap Kumpulan Berfungsi dalam Ungkapan Biasa Java?

Bagaimanakah Menangkap Kumpulan Berfungsi dalam Ungkapan Biasa Java?

Susan Sarandon
Lepaskan: 2024-10-28 22:25:30
asal
692 orang telah melayarinya

How do Capturing Groups Work in Java Regular Expressions?

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:

  • (.*): Memadankan sebarang nombor mana-mana aksara sebelum kumpulan seterusnya.
  • (d ): Memadankan sebarang nombor digit selepas kumpulan sebelumnya.
  • (.*): Memadankan sebarang nombor mana-mana aksara selepas kumpulan sebelumnya.

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
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan