Rumah > Java > javaTutorial > teks badan

Kuasai kemahiran mod tamak dan tidak tamak ungkapan biasa Java

PHPz
Lepaskan: 2023-12-26 14:33:14
asal
987 orang telah melayarinya

Kuasai kemahiran mod tamak dan tidak tamak ungkapan biasa Java

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());
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

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());
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

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);

manakala (matcher.find()) {

System.out.println(matcher.group());
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

Hasil output ialah "< ;h1>", "", "

", "

", "

", "

", "

", "

".

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);

sementara (penjodoh.cari()) {

System.out.println(matcher.group());
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

Hasil output ialah "Saya", "cinta" dan "pengekodan".

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan