Rumah > Java > javaTutorial > teks badan

Regex untuk Jurutera Perisian Java

Mary-Kate Olsen
Lepaskan: 2024-11-01 01:52:28
asal
425 orang telah melayarinya

Regex for a Java Software Engineer

Mengapa saya memerlukan Regex?

Ekspresi biasa ialah corak yang membantu kita mencari urutan tertentu dalam teks. Di Java, ia digunakan dengan kelas dalam pakej java.util.regex.
Dengan regex, kita boleh mencari corak, menggantikan teks dan mengesahkan input tanpa menambah terlalu banyak kod.

Sintaks Asas

Mari kita lihat beberapa simbol regex biasa dan perkara yang mereka lakukan:

  1. Watak Tersurat: Regex yang paling mudah ialah teks biasa sahaja. helo sepadan dengan sebarang kejadian helo dalam rentetan.

  2. Wildcard:
    .: Memadankan mana-mana aksara tunggal (h.llo sepadan dengan helo, halo, hxllo).

  3. Set Watak:
    [abc]: Memadankan mana-mana aksara dalam kurungan (h[aeiou]llo sepadan dengan helo, halo).
    [a-z]: Memadankan mana-mana huruf kecil dari a hingga z.

  4. Pengkuantiti:
    *: Padanan sifar atau lebih kejadian huruf di belakangnya(go*gle sepadan dengan google, ggle, goooooooogle).
    : Padan dengan satu atau lebih kejadian (go gle padankan google, goooglebut bukan ggle).
    ?: Padanan sifar atau satu kejadian huruf di belakangnya(warna?ur sepadan dengan kedua-dua warna dan warna).

  5. Sauh:
    ^: Menunjukkan permulaan baris (^hello sepadan dengan mana-mana baris yang bermula dengan helo).
    $: Menunjukkan penghujung baris (world$ sepadan dengan mana-mana baris yang berakhir dengan dunia).

  6. Kumpulan:
    (abc): Himpunkan berbilang aksara sebagai satu unit ((ha) sepadan dengan ha, haha, hahaha).

  7. Watak Melarikan Diri:
    Sesetengah aksara (seperti . atau *) mempunyai makna istimewa, jadi awalinya dengan garis serong ke belakang untuk menggunakannya secara literal. Sebagai contoh, . akan sepadan dengan titik literal.

Contoh ringkas:

Corak: Menyusun ungkapan biasa dan memadankannya dalam teks.
Penjodoh: Menggunakan corak pada teks tertentu dan membantu mencari padanan.

Berikut ialah contoh ringkas cara kelas ini berfungsi bersama:

import java.util.regex.*;

import java.util.regex.*;

public class RegexBasicsDemo {
    public static void main(String[] args) {
        String text = "hxllo hallo hbllllllo hello";
        Pattern pattern = Pattern.compile("h.llo");
        Matcher matcher = pattern.matcher(text);
        while (matcher.find()) {
            System.out.println("Wildcard match found: " + matcher.group());
        }
   }
}
Salin selepas log masuk

Apa yang akan dicetak:

  • Padanan kad liar ditemui: hxllo
  • Perlawanan kad liar ditemui: halo
  • Perlawanan kad bebas ditemui: hello
import java.util.regex.*;

public class RegexReplaceExample {
    public static void main(String[] args) {

        String text = "hello hzllo hallo hillo";
        Pattern pattern = Pattern.compile("h[aeiou]llo");
        Matcher matcher = pattern.matcher(text);

        String result = matcher.replaceAll("hi");

        System.out.println("Original text: " + text);
        System.out.println("Text after replacement: " + result);
    }
}
Salin selepas log masuk

Apa yang akan dicetak:

  • Teks asal: hello hzllo hallo hillo
  • Teks selepas penggantian: hi hzllo hi hi

Kaedah Java Regex Berguna

  • matches(): Semak sama ada keseluruhan teks sepadan dengan corak regex.
  • find(): Mencari kejadian corak dalam teks (mengembalikan benar jika, dan hanya jika, jujukan urutan input sepadan dengan corak pemadan ini)
  • group(): Mengembalikan teks yang dipadankan selepas memanggil find().
  • replaceAll(): Menggantikan padanan dalam teks dengan rentetan gantian

Pendapat saya tentang regex

Sebagai pembangun Java, saya sangat menghargai regex kerana kuasanya dengan pemprosesan teks. Sungguh mengagumkan untuk melihat bagaimana satu baris regex yang direka dengan baik boleh mengendalikan tugasan yang mungkin memerlukan keseluruhan blok kod. Untuk pemadanan yang mudah, regex terasa sempurna: ia ringkas, cekap dan sesuai untuk perkara seperti mengesahkan format atau mengekstrak corak.

Tetapi saya tahu tidak semua orang merasakan perkara yang sama. Regex boleh menjadi jauh dari intuitif, dan apabila corak mula menjadi rumit, kebolehbacaan terjejas. Mudah untuk mencipta corak yang berfungsi seperti keajaiban, namun hampir mustahil untuk difahami oleh orang lain (atau anda sendiri, kemudian, selepas anda pulang dari percutian yang menyeronokkan) sepintas lalu. Corak kompleks boleh menjadi kod "tulis sahaja".

Dalam situasi ini, saya mendapati lebih baik untuk memecahkan pengesahan kepada langkah yang lebih kecil dan lebih mudah. Ini memastikan perkara lebih jelas dan memudahkan orang lain mengikuti logik. Walaupun regex adalah alat yang sangat berharga di Java, saya fikir ia lebih baik digunakan dengan sedikit kekangan, terutamanya dalam persekitaran pasukan. Lagipun, menulis kod yang boleh diselenggara bermakna memikirkan orang seterusnya yang akan membacanya.

Atas ialah kandungan terperinci Regex untuk Jurutera Perisian Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!