Rumah >Java >javaTutorial >Bagaimanakah saya boleh menggunakan kumpulan tangkapan bernama di Jawa sebelum Java 7?

Bagaimanakah saya boleh menggunakan kumpulan tangkapan bernama di Jawa sebelum Java 7?

Barbara Streisand
Barbara Streisandasal
2024-11-05 06:01:01554semak imbas

How can I use named capture groups in Java before Java 7?

Kumpulan Dinamakan dengan Ungkapan Biasa dalam Java

Pakej ungkapan biasa mempunyai had

pakej java.regex Saya telah mengesahkan bahawa tiada sokongan untuk kumpulan yang dinamakan, jadi sila beritahu saya perpustakaan pihak ketiga yang menyokongnya.

Saya melihat ke dalam jregex, tetapi keluaran terakhir adalah pada tahun 2002 dan ia tidak berfungsi untuk java5 (walaupun saya mencubanya serta-merta).

Sokongan sejak Java 7

Java 7 menambah sokongan untuk kumpulan yang dinamakan. Blok binaan untuk menyokong kumpulan penangkapan yang dinamakan ialah:

  • '(?menangkap teks)' untuk mentakrifkan kumpulan bernama 'nama'
  • ' kepada rujukan belakang bernama kumpulan 'nama' k'
  • '${name}' untuk merujuk kepada kumpulan yang ditangkap dalam rentetan gantian Matcher
  • input yang ditangkap oleh 'kumpulan bernama' "Matcher.group(String name)" yang ditentukan untuk mengembalikan subrentetan

Alternatif sebelum Java 7 Terdapat alternatif.

Google bernama-regex

    jregex
  • Pustaka Regex2

Pustaka Regex2 menyokong kumpulan bernama Ia meluas kelas java.util.regex.Corak untuk mencipta .

Contoh

Rentetan input: "TEST 123"

Ungkapan biasa: "(?w ) (?

Akses:

match.group(1) == "TEST"

matcher.group("login") == "TEST"

match.name (1) == "log masuk"


Ganti:

matcher.replaceAll("aaaaa_$1_sssss_$2____") == "aaaa_TEST_sssss_123____"

matcher.replaceAll("aaaaa_$ login}_sssss_${id}____") == "aaaaa_TEST_sssss_123____"

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan kumpulan tangkapan bernama di Jawa sebelum Java 7?. 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