Rumah >Java >javaTutorial >Bagaimanakah Pengkuantiti Enggan Membantu Mengekstrak Data Tertentu Menggunakan Kumpulan Penangkap Regex di Java?

Bagaimanakah Pengkuantiti Enggan Membantu Mengekstrak Data Tertentu Menggunakan Kumpulan Penangkap Regex di Java?

Linda Hamilton
Linda Hamiltonasal
2024-10-28 07:57:02484semak imbas

How Do Reluctant Quantifiers Help Extract Specific Data Using Regex Capturing Groups in Java?

Regex Capturing Groups in Java

Memahami Regular Expression Capturing

Dalam contoh kod, ungkapan biasa "(.)(d )(.)" mencari yang berikut:

  • Kumpulan 1 (.*): Mana-mana watak, termasuk ruang, sifar atau lebih masa.
  • Kumpulan 2 (d ): Satu atau lebih digit.
  • Kumpulan 3 (.*): Mana-mana aksara, termasuk ruang, sifar atau lebih masa.

Regeks ini sepadan dengan rentetan yang terdapat digit, seperti yang dilihat dalam input yang disediakan: "Pesanan ini dibuat untuk QT3000! OK?".

Pengkuantiti Tamak vs. Enggan

Pada mulanya, kod menggunakan pengkuantiti tamak dalam Kumpulan 1, cuba memadankan seberapa banyak aksara yang mungkin. Ini menyebabkan Kumpulan 1 menggunakan keseluruhan rentetan, tidak meninggalkan apa-apa untuk Kumpulan 2 dan 3.

Untuk membetulkannya, pengubah suai "?" ditambahkan pada pengkuantiti, menukarkannya kepada pengkuantiti enggan. Pengkuantiti enggan sepadan dengan bilangan minimum aksara yang diperlukan untuk memenuhi syarat, mengekalkan aksara untuk kumpulan berikutnya.

Kelebihan Menangkap Kumpulan

Menangkap kumpulan membenarkan kawalan yang lebih besar ke atas bahagian rentetan yang dipadankan. Mereka mendayakan:

  • Rujukan diindeks: Kumpulan yang ditangkap boleh dirujuk oleh indeks mereka (cth., m.group(1)) untuk mendapatkan subrentetan yang dipadankan.
  • Rujukan belakang: Kumpulan yang ditangkap boleh digunakan untuk memadankan bahagian rentetan yang telah dipadankan.
  • Tangkapan bernama: Dalam Java 7 dan kemudian, kumpulan dinamakan membenarkan ungkapan biasa yang lebih intuitif dan boleh diselenggara.

Nota Tambahan

  • Kelas Java Pattern menyediakan cara ringkas untuk menyusun ungkapan biasa.
  • Kelas Matcher boleh digunakan untuk mencari dan menangkap padanan.
  • Menggunakan pengkuantiti enggan dalam Kumpulan 1 membolehkan pengekstrakan tepat bagi digit dalam rentetan sampel.
  • Memahami perbezaan pengkuantiti adalah penting untuk mengoptimumkan corak ungkapan biasa.

Atas ialah kandungan terperinci Bagaimanakah Pengkuantiti Enggan Membantu Mengekstrak Data Tertentu Menggunakan Kumpulan Penangkap Regex di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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