Petua sintaks ungkapan biasa Java: mod tamak dan mod tidak tamak
Apabila menggunakan ungkapan biasa Java, anda sering menghadapi situasi di mana anda perlu memadankan seberapa banyak aksara yang mungkin atau sesedikit aksara yang mungkin. Ini memerlukan penggunaan mod tamak dan mod tidak tamak untuk mengawal kaedah padanan. Artikel ini akan memperkenalkan kedua-dua mod ini secara terperinci dan memberikan contoh kod khusus.
1. Mod Tamak
Mod tamak ialah kaedah padanan lalai. Dalam mod tamak, ungkapan biasa sepadan dengan seberapa banyak aksara yang mungkin sehingga syarat padanan tidak lagi dipenuhi.
Sebagai contoh, kami mempunyai teks berikut:
Teks rentetan = "abc abc abc";
Kami mahu memadankan "abc" di tengah. Anda boleh menggunakan kod berikut:
Pattern pattern = Pattern.compile(".*");
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group());
}
Output hasilnya ialah "abc abc abc", kerana ".*" menggunakan mod tamak dan akan memadankan seberapa banyak aksara yang mungkin.
2. Mod tidak tamak
Mod tidak tamak dicapai dengan menambah "?" Dalam mod tidak tamak, ungkapan biasa sepadan dengan sesedikit aksara yang mungkin sehingga syarat yang sepadan dipenuhi.
Berikut ialah contoh kod menggunakan mod tidak tamak:
Corak corak = Pattern.compile(".*?"
Matcher matcher = pattern.matcher(text
while (matcher.find()) {
System.out.println(matcher.group());
}
Hasil keluaran ialah "abc". Ini kerana ".*?"
3. Senario aplikasi mod tamak dan mod tidak tamak
1. Contohnya, jika kita ingin memadankan semua teg dalam dokumen HTML, mod tamak lalai boleh memadankan semua teg sekaligus. . pattern = Pattern.compile("<.*?>");
Matcher matcher = pattern.matcher(html);
System.out.println(matcher.group());
", "
", "", "
".2. Senario aplikasi mod tidak tamak
Mod tidak tamak biasanya sesuai untuk situasi yang perlu dipadankan dengan seberapa sedikit aksara yang mungkin. Sebagai contoh, jika kita ingin memadankan semua perkataan dalam ayat, mod lalai tidak tamak boleh memadankan perkataan satu demi satu. Ayat rentetan = "Saya suka pengekodan";Corak corak = Pattern.compile("bw+?b");
Penjodoh penjodoh = pola.penjodoh(ayat);
System.out.println(matcher.group());
Ringkasnya, mod tamak dan mod tidak tamak sangat berguna dalam ungkapan biasa Java. Mengikut keperluan khusus, memilih mod yang sesuai boleh mencapai pemadanan dan mengekstrak maklumat yang diperlukan dengan lebih baik. Saya harap contoh kod dalam artikel ini dapat membantu pembaca lebih memahami dan menggunakan mod tamak dan mod tidak tamak.
Atas ialah kandungan terperinci Kuasai kemahiran mod tamak dan tidak tamak ungkapan biasa Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!