JavaRush /Java Blog /Random-ID /Tautan Balik dalam Ekspresi Reguler Java
eGarmin
Level 41

Tautan Balik dalam Ekspresi Reguler Java

Dipublikasikan di grup Random-ID
Referensi balik dalam ekspresi reguler Java adalah fitur yang sangat berguna yang didukung oleh mesin Java . Untuk memahami apa itu backlink, pertama-tama Anda perlu belajar memahami apa itu grup . Grup dalam ekspresi reguler memperlakukan beberapa karakter sebagai satu kesatuan. Grup dibuat dengan menempatkan karakter dalam tanda kurung – “()”. Sepasang tanda kurung merupakan satu kelompok. Tautan balik berguna karena kita dapat mengulangi pola pencarian tanpa menyalinnya secara langsung. Kita hanya perlu merujuk ke grup yang telah ditentukan sebelumnya menggunakan konstruksi seperti \N , di mana N adalah nomor grup. 2 contoh berikut memberi Anda gambaran tentang kenyamanan backlink.
Contoh 1: Menemukan Pola Berulang
Konstruksi formulir (\d\d\d)\1 cocok dengan baris 123123, tetapi tidak dengan baris 123456. String str = "ля123123ля"; Pattern p = Pattern.compile("(\\d\\d\\d)\\1"); Matcher m = p.matcher(str); System.out.println(m.groupCount()); while (m.find()) { String word = m.group(); System.out.println(word + " " + m.start() + " " + m.end()); } Keluaran: 1 123123 2 8 Catatan penerjemah! Di sini, sebagai penerjemah, saya ingin sedikit kebebasan dan menyisipkan komentar dari diri saya sendiri, karena Saya sendiri baru belajar tentang ekspresi reguler dan saya berharap mereka akan mengoreksi saya dengan kata-kata makian :) jika yang saya tulis di bawah ini adalah kesalahan: 1) Metode groupCount ( ) Mengembalikan jumlah grup yang ditentukan dalam pola, jadi genap jika string masukan adalah "la123" 456 la", yang tidak sesuai dengan template, angka 1 akan tetap ditampilkan di layar. 2) Metode find() Mencari grup berikutnya, tetapi hanya mengembalikan nilai boolean : benar – ditemukan, salah – tidak ditemukan 3) group() Metode Mengembalikan substring terakhir yang ditemukan dari pola. Dalam hal ini 123123 4) Metode start() Mengembalikan posisi substring yang ditemukan dalam string sumber (penomoran, tentu saja, dimulai dari nol) 5) Metode end () Mengembalikan posisi dalam string sumber segera setelah ditemukan substring. Jadi, nilai ini tidak menunjuk ke karakter terakhir dari substring yang ditemukan dalam string sumber, tetapi ke karakter berikutnya setelahnya.
Contoh 2: Menemukan kata duplikat
String pattern = "\\b(\\w+)\\b[\\w\\W]*\\b\\1\\b"; Pattern p = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE); String phrase = "unique is not duplicate but unique, Duplicate is duplicate."; Matcher m = p.matcher(phrase); while (m.find()) { String val = m.group(); System.out.println("Найденная последовательность символов: \"" + val + "\""); System.out.println("Слово-дубликат: " + m.group(1) + "\n"); } Kesimpulan: Найденная последовательность символов: "unique is not duplicate but unique" Слово-дубликат: unique Найденная последовательность символов: "Duplicate is duplicate" Слово-дубликат: Duplicate Perlu diketahui bahwa metode menemukan kata duplikat (menggunakan ekspresi reguler) tidak optimal. Misalnya, pada contoh di atas, kata pertama “duplikat” dilewati.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION