Rumah  >  Artikel  >  Java  >  Bagaimanakah Saya Boleh Menggunakan Kumpulan Dinamakan dalam Ungkapan Biasa Java?

Bagaimanakah Saya Boleh Menggunakan Kumpulan Dinamakan dalam Ungkapan Biasa Java?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-06 01:27:02130semak imbas

How Can I Utilize Named Groups in Java Regular Expressions?

Java Regex Dinamakan Kumpulan: Penerokaan Mendalam

Walaupun tiada sokongan kumpulan bernama terbina dalam dalam pakej java.regex Java , perpustakaan pihak ketiga menyediakan penyelesaian untuk had ini.

Sokongan Java 7 untuk Kumpulan Dinamakan

Sehingga Java 7, kumpulan penangkap bernama telah diperkenalkan dengan yang berikut binaan:

  • (?menangkap teks): Mentakrifkan "nama" kumpulan bernama.
  • k: Merujuk semula kumpulan bernama "nama."
  • ${name}: Rujukan teks yang ditangkap dalam rentetan gantian Matcher.
  • Matcher.group(String name): Mengambil teks yang ditangkap oleh kumpulan bernama "nama."

Alternatif Pra-Java 7

Sebelum Java 7, beberapa perpustakaan menawarkan sokongan kumpulan bernama:

  • Google bernama-regex : Pustaka ini menyediakan kefungsian yang kaya, termasuk kumpulan bernama bersarang dan corak regex rekursif.
  • jregex: Walaupun terhad dalam sokongannya, perpustakaan ini masih menawarkan fungsi kumpulan bernama asas.

Contoh

Pertimbangkan contoh berikut menggunakan corak regex bernama:

String input = "TEST 123";
Pattern pattern = Pattern.compile("(?<login>[\w]+) (?<id>[\d]+)");
Matcher matcher = pattern.matcher(input);
System.out.println("Login: " + matcher.group("login"));
System.out.println("ID: " + matcher.group("id"));

Ini akan mengeluarkan:

Login: TEST
ID: 123

Keterbatasan

Sokongan kumpulan bernama Java adalah terhad dalam cara berikut:

  • Hanya satu kumpulan bernama bagi setiap nama. Had ini menghalang penangkapan kejadian berbilang kumpulan bernama sama.
  • Tiada sokongan untuk rekursi dalam regex. Kumpulan bernama tidak boleh digunakan sebagai sasaran rekursi dalam corak regex.

Kesimpulan

Perpustakaan pihak ketiga menawarkan sokongan kumpulan bernama teguh untuk Java. Walau bagaimanapun, dengan pengenalan kumpulan yang dinamakan dalam Java 7, pembangun kini mempunyai pendekatan yang lebih diselaraskan dan piawai untuk bekerja dengan kumpulan yang dinamakan dalam corak regex mereka.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Kumpulan Dinamakan dalam Ungkapan Biasa 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