Jadual Kandungan
Membuat corak
Membuat pencocokan
Operasi Matcher Biasa
1. Periksa jika keseluruhan rentetan sepadan
2. Cari perlawanan berikutnya
3. Gantikan perlawanan
4. Bekerja dengan kumpulan
Contoh: Mengesahkan dan ekstrak e -mel
Petua dan amalan terbaik
Rumah Java javaTutorial Bagaimana cara menggunakan corak dan kelas matcher di Java?

Bagaimana cara menggunakan corak dan kelas matcher di Java?

Aug 22, 2025 am 09:57 AM
java ungkapan biasa

Kelas corak digunakan untuk menyusun ungkapan biasa, dan kelas Matcher digunakan untuk melakukan operasi yang sepadan pada rentetan. Gabungan kedua -duanya dapat merealisasikan carian teks, padanan dan penggantian; Mula -mula membuat objek corak melalui corak.comPile (), kemudian panggil kaedah pencocokannya () untuk menghasilkan contoh yang sepadan, dan kemudian gunakan padanan () untuk menilai padanan rentetan penuh, cari () untuk mencari berikutnya, menggantikan () atau penggantiFirst () untuk penggantian. Jika biasa mengandungi kumpulan penangkapan, kandungan kumpulan nth boleh diperolehi melalui kumpulan (n). Dalam aplikasi sebenar, corak kompilasi berulang harus dielakkan, watak khas melarikan diri, dan bendera corak yang sepadan harus digunakan seperti yang diperlukan, dan akhirnya tugas pemprosesan teks yang efisien dan tepat harus dicapai.

Bagaimana menggunakan corak dan kelas matcher di Java?

Kelas Pattern dan Matcher di Java adalah sebahagian daripada pakej java.util.regex dan digunakan bersama -sama untuk melakukan operasi ekspresi biasa seperti mencari, memadankan, dan menggantikan teks. Inilah cara menggunakannya dengan berkesan.

Membuat corak

Kelas Pattern mewakili ungkapan biasa yang disusun. Anda membuat objek Pattern dengan memanggil Pattern.compile() dengan rentetan regex.

 import java.util.regex.pattern;

Corak corak = corak.compile ("your_regex_here");

Menyusun semula regex ke dalam objek Pattern adalah cekap apabila anda merancang untuk menggunakan corak yang sama beberapa kali, kerana ia mengelakkan mengulang semula regex setiap kali.


Membuat pencocokan

Sebaik sahaja anda mempunyai Pattern , anda boleh membuat Matcher untuk rentetan input tertentu menggunakan kaedah matcher() . Matcher melakukan kerja sebenar yang sepadan dengan input terhadap corak.

 import java.util.regex.matcher;

String input = "Hello, example@email.com";
Matcher matcher = corak.matcher (input);

Operasi Matcher Biasa

Berikut adalah kaedah yang paling biasa digunakan pada kelas Matcher :

1. Periksa jika keseluruhan rentetan sepadan

Gunakan matches() untuk melihat sama ada keseluruhan rentetan input sepadan dengan corak.

 boolean isfullMatch = matcher.matches ();

Ini mengembalikan true hanya jika keseluruhan rentetan mematuhi corak.

2. Cari perlawanan berikutnya

Gunakan find() untuk mencari seterusnya dalam input yang sepadan dengan corak. Ini berguna untuk mengekstrak pelbagai perlawanan.

 sementara (matcher.find ()) {
    System.out.println ("Ditemui:" Matcher.Group ());
}

group() mengembalikan substring yang dipadankan. Anda juga boleh mendapatkan kumpulan tertentu jika regex anda menggunakan kumpulan menangkap.

3. Gantikan perlawanan

Gunakan replaceAll() atau replaceFirst() untuk menggantikan teks yang dipadankan.

 Hasil String = Matcher.ReplaceAlL ("Penggantian");

Sebagai alternatif, panggilnya secara langsung pada corak:

 Hasil rentetan = corak.matcher (input) .ReplaceAlL ("penggantian");

4. Bekerja dengan kumpulan

Jika regex anda mempunyai ibu bapa (menangkap kumpulan), anda boleh mengakses setiap kumpulan dengan indeks.

 Corak corak = corak.compile ("(\\ d {4})-(\\ d {2})-(\\ d {2})");
Matcher matcher = corak.matcher ("Tarikh: 2023-10-05");

jika (matcher.find ()) {
    System.out.println ("Tahun:" Matcher.Group (1)); // 2023
    System.out.println ("Bulan:" Matcher.Group (2)); // 10
    System.out.println ("hari:" matcher.group (3)); // 05
}

Nota: group(0) adalah keseluruhan perlawanan; Kumpulan bernombor bermula dari 1.


Contoh: Mengesahkan dan ekstrak e -mel

 import java.util.regex.pattern;
import java.util.regex.matcher;

Regexexample kelas awam {
    public static void main (string [] args) {
        String text = "Hubungi kami di support@example.com atau sales@domain.org.";
        String regex = "\\ b [a-z0-9 ._%-] @[a-z0-9.-] \\. [A-za-z] {2,} \\ b";

        Corak corak = corak.comPile (regex);
        Matcher matcher = corak.matcher (teks);

        sementara (matcher.find ()) {
            System.out.println ("Ditemui e -mel:" Matcher.group ());
        }
    }
}

Output:

 Ditemui e -mel: support@example.com
Ditemui e -mel: sales@domain.org

Petua dan amalan terbaik

  • Menyusun corak sekali jika menggunakannya berulang kali (misalnya, dalam gelung atau merentasi panggilan kaedah).

  • Melarikan diri dari watak khas dalam regex (seperti . , * , , ? ) Apabila anda bermaksud watak literal.

  • Gunakan Pattern.CASE_INSENSITIVE bendera jika diperlukan:

     Corak corak = corak.compile ("ralat", corak.case_insensitive);
  • Lebih suka find() lebih matches() apabila mencari dalam teks, tidak mengesahkan keseluruhan rentetan.


  • Pada asasnya, Pattern menyusun peraturan regex, dan Matcher memohon kepada rentetan. Bersama -sama, mereka memberi anda alat pemprosesan teks yang kuat. Ingatlah untuk mengendalikan corak dengan teliti -regex boleh mendapatkan kompleks dengan cepat.

    Atas ialah kandungan terperinci Bagaimana cara menggunakan corak dan kelas matcher di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah kebuntuan di Java dan bagaimana anda boleh menghalangnya? Apakah kebuntuan di Java dan bagaimana anda boleh menghalangnya? Aug 23, 2025 pm 12:55 PM

Adeadlockinjaoccurswhentwoormorethreadsareblockedforever, eachwaitingforaresourceHeldByTheother, biasanyaduetoculularwaitcausedbyinconsistentlockordering;

Senibina Kriptografi Java (JCA) untuk pengekodan selamat Senibina Kriptografi Java (JCA) untuk pengekodan selamat Aug 23, 2025 pm 01:20 PM

Memahami komponen teras JCA seperti MessageDigest, Cipher, KeyGenerator, SecureRandom, Signature, Keystore, dan lain -lain, yang melaksanakan algoritma melalui mekanisme penyedia; 2. Gunakan algoritma dan parameter yang kuat seperti SHA-256/SHA-512, AES (Kunci 256-bit, mod GCM), RSA (2048-bit atau ke atas) dan SecureRandom; 3. Elakkan kunci berkod keras, gunakan KeyStore untuk menguruskan kunci, dan menjana kunci melalui kata laluan yang diperoleh dengan selamat seperti PBKDF2; 4. Lumpuhkan mod ECB, mengamalkan mod penyulitan pengesahan seperti GCM, menggunakan IV rawak yang unik untuk setiap penyulitan, dan yang sensitif yang jelas pada waktunya

Edit penanda buku di Chrome Edit penanda buku di Chrome Aug 27, 2025 am 12:03 AM

Penyuntingan penanda buku Chrome adalah mudah dan praktikal. Pengguna boleh memasukkan pengurus penanda buku melalui kekunci pintasan CTRL Shift O (Windows) atau CMD Shift O (MAC), atau masuk melalui menu penyemak imbas; 1. Apabila menyunting penanda buku tunggal, klik kanan untuk memilih "Edit", ubah suai tajuk atau URL dan klik "Selesai" untuk menyimpan; 2. Apabila menganjurkan penanda buku dalam kelompok, anda boleh memegang Ctrl (atau CMD) kepada penanda buku pelbagai pilihan dalam pengurus penanda buku, klik kanan untuk memilih "Pindah ke" atau "Salin ke" folder Sasaran; 3. Apabila mengeksport dan mengimport penanda halaman, klik butang "Solve" untuk memilih "penanda buku eksport" untuk menyimpan sebagai fail HTML, dan kemudian pulihkannya melalui fungsi "Import Bookmark" jika perlu.

Tetapan permainan lol tidak menyimpan selepas ditutup [tetap] Tetapan permainan lol tidak menyimpan selepas ditutup [tetap] Aug 24, 2025 am 03:17 AM

Ifleagueoflegendssettingsaren'tsaving, trythesesteps: 1.runthegameasadministrator.2.grantfullfolderpermissionstotheleagueof LegendsDirectory.3.Editandensuregame.cfgisn'tread-only.4.disableCloudsyncforthegamefolder.5.RepairthegameviAveAveAtheriotClient.

Menyelesaikan masalah nullpointerexception biasa dengan pilihan Menyelesaikan masalah nullpointerexception biasa dengan pilihan Aug 31, 2025 am 07:11 AM

Pilihan adalah kelas kontena yang diperkenalkan oleh Java 8. Ia digunakan dengan jelas menunjukkan bahawa nilai mungkin kosong, dengan itu mengelakkan NullPointerException; 2. Ia memudahkan pemeriksaan null bersarang dengan menyediakan peta, orelse dan kaedah lain, mencegah kaedah dari mengembalikan nilai pulangan dan penyeragaman pengumpulan; 3. Amalan terbaik termasuk hanya nilai yang kembali, mengelakkan penggunaan medan atau parameter, membezakan Orelse dari Orelseget, dan tidak memanggil GET () secara langsung; 4. Pilihan tidak boleh disalahgunakan. Sekiranya kaedah yang tidak kosong tidak perlu dibungkus, operasi pilihan yang tidak perlu harus dielakkan dalam aliran; Penggunaan yang betul pilihan boleh meningkatkan keselamatan kod dan kebolehbacaan, tetapi ia memerlukan tabiat pengaturcaraan yang baik.

Kesalahan 'Java tidak diiktiraf' dalam CMD [3 langkah mudah] Kesalahan 'Java tidak diiktiraf' dalam CMD [3 langkah mudah] Aug 23, 2025 am 01:50 AM

Ifjavaisnotrecognizedincmd, memastikanJavaisinstalled, setTheJava_homevariableTothejdkpath, andaddthejdk'sbinfolderTothesystempath.restartcmdandrunjava-versionToconfirm.

Masukkan kekunci yang tidak berfungsi di papan kekunci saya Masukkan kekunci yang tidak berfungsi di papan kekunci saya Aug 30, 2025 am 08:36 AM

Pertama, checkforphysicalissueslikeDebrisordamageandcleanthekeyboardestwithanexternalone; 2.Testheenterkeyindifferentappstodetermineiftheissueissoftware-spesifik;

Apakah kebocoran memori di Java? Apakah kebocoran memori di Java? Aug 28, 2025 am 05:37 AM

AmemoryleakinjaoccurswhenunreachableBrectsarenotgarbageCollectedDuetolingeringReference, leadingToExcessivemememememyUsageAndPotentialOutOfMemoryError

See all articles