Whiz Tools

P tester Corak Regex

Salin

Keputusan Padanan

Masukkan corak dan teks ujian untuk melihat keputusan

Simpan Corak

Corak Tersimpan

Tiada corak tersimpan lagi

Panduan Simbol Regex

.Padan dengan mana-mana watak kecuali baris baru
\dPadan dengan mana-mana digit (0-9)
\DPadan dengan mana-mana bukan digit
\wPadan dengan mana-mana watak perkataan (a-z, A-Z, 0-9, _)
\WPadan dengan mana-mana bukan watak perkataan
\sPadan dengan mana-mana watak ruang
\SPadan dengan mana-mana bukan watak ruang
^Padan dengan permulaan baris
$Padan dengan akhir baris
*Padan dengan 0 atau lebih daripada watak sebelumnya
+Padan dengan 1 atau lebih daripada watak sebelumnya
?Padan dengan 0 atau 1 daripada watak sebelumnya
{n}Padan dengan tepat n daripada watak sebelumnya
{n,}Padan dengan sekurang-kurangnya n daripada watak sebelumnya
{n,m}Padan dengan antara n dan m daripada watak sebelumnya
[abc]Padan dengan mana-mana satu daripada watak dalam kurungan
[^abc]Padan dengan mana-mana watak yang tidak dalam kurungan
(abc)Mengumpulkan beberapa token bersama dan menangkap padanan
a|bPadan dengan sama ada a atau b
\bPadan dengan posisi sempadan perkataan

Penguji dan Pengesah Pola Regex

Pengenalan

Penguji pola Ekspresi Reguler (regex) adalah alat penting bagi pemaju, penganalisis data, dan sesiapa yang bekerja dengan pemprosesan teks. Pengesah pola regex yang komprehensif ini membolehkan anda mencipta, menguji, dan memperhalusi ekspresi reguler secara masa nyata, memberikan maklum balas visual segera mengenai padanan pola. Sama ada anda mengesahkan alamat email, menganalisis fail log, atau mengekstrak data tertentu dari teks, penguji regex kami menjadikan proses pembangunan dan penyahpepijatan lebih cepat dan intuitif.

Ekspresi reguler adalah urutan pola pencocokan yang kuat yang membolehkan pencarian, pengesahan, dan manipulasi teks yang canggih. Namun, sintaksnya boleh menjadi kompleks dan mencabar untuk dikuasai. Penguji pola regex ini menyederhanakan proses dengan menyorot padanan semasa anda menaip, mengesahkan sintaks pola, dan membolehkan anda menyimpan pola yang sering digunakan untuk rujukan masa depan.

Cara Menggunakan Penguji Pola Regex

Menggunakan pengesah pola regex kami adalah mudah dan intuitif. Ikuti langkah-langkah ini untuk mula:

  1. Masukkan Pola Ekspresi Reguler: Taipkan pola regex anda di medan input yang ditetapkan. Alat ini mengesahkan pola anda secara masa nyata, memberi amaran kepada anda tentang sebarang ralat sintaks.

  2. Pilih Bendera Regex: Pilih bendera yang sesuai untuk pola anda:

    • g (Global): Cari semua padanan dan bukannya berhenti selepas padanan pertama
    • i (Tidak Sensitif Kes): Jadikan pola tidak sensitif kes
    • m (Multiline): Jadikan ^ dan $ padan dengan permulaan/akhir setiap baris
    • Pelbagai gabungan bendera ini tersedia dalam dropdown
  3. Masukkan Teks Uji: Masukkan teks yang ingin anda uji terhadap pola anda di kawasan teks uji.

  4. Lihat Hasil Secara Masa Nyata: Semasa anda menaip, alat ini secara automatik:

    • Menyorot semua padanan pola dalam teks uji
    • Memaparkan jumlah padanan yang ditemui
    • Menunjukkan sama ada pola padan dengan keseluruhan teks
  5. Simpan Pola Berguna: Untuk pola yang anda gunakan dengan kerap:

    • Masukkan label deskriptif untuk pola anda
    • Klik butang "Simpan"
    • Akses pola yang disimpan dari bahagian "Pola Disimpan"
  6. Salin Hasil: Gunakan butang "Salin Padanan" untuk menyalin semua teks yang dipadankan ke papan klip anda untuk digunakan dalam aplikasi lain.

Antara muka dibahagikan kepada dua panel utama: panel input di mana anda memasukkan pola dan teks uji, dan panel hasil yang memaparkan padanan dan maklumat pola.

Asas Ekspresi Reguler

Ekspresi reguler menggunakan watak dan urutan khas untuk mendefinisikan pola pencarian. Berikut adalah panduan kepada simbol regex asas yang disokong oleh alat kami:

Pencocokan Watak

SimbolPeneranganContohPadanan
.Mencocokkan mana-mana watak kecuali newlinea.c"abc", "adc", "a1c", dll.
\dMencocokkan mana-mana digit (0-9)\d{3}"123", "456", "789", dll.
\DMencocokkan mana-mana bukan digit\D+"abc", "xyz", dll.
\wMencocokkan mana-mana watak perkataan (a-z, A-Z, 0-9, _)\w+"abc123", "test_123", dll.
\WMencocokkan mana-mana bukan watak perkataan\W+"!@#", " + ", dll.
\sMencocokkan mana-mana watak ruanga\sb"a b", "a\tb", dll.
\SMencocokkan mana-mana bukan watak ruang\S+"abc", "123", dll.

Penanda Posisi

SimbolPeneranganContohPadanan
^Mencocokkan permulaan baris^abc"abc" di permulaan baris
$Mencocokkan akhir barisabc$"abc" di akhir baris
\bMencocokkan sempadan perkataan\bword\b"word" sebagai perkataan lengkap

Pengkuantiti

SimbolPeneranganContohPadanan
*Mencocokkan 0 atau lebih daripada watak yang mendahuluia*b"b", "ab", "aab", dll.
+Mencocokkan 1 atau lebih daripada watak yang mendahuluia+b"ab", "aab", "aaab", dll.
?Mencocokkan 0 atau 1 daripada watak yang mendahuluicolou?r"color", "colour"
{n}Mencocokkan tepat n daripada watak yang mendahuluia{3}"aaa"
{n,}Mencocokkan sekurang-kurangnya n daripada watak yang mendahuluia{2,}"aa", "aaa", "aaaa", dll.
{n,m}Mencocokkan antara n dan m daripada watak yang mendahuluia{2,4}"aa", "aaa", "aaaa"

Kelas Watak

SimbolPeneranganContohPadanan
[abc]Mencocokkan mana-mana satu daripada watak dalam kurungan[aeiou]"a", "e", "i", "o", "u"
[^abc]Mencocokkan mana-mana watak yang tidak dalam kurungan[^aeiou]Mana-mana watak kecuali "a", "e", "i", "o", "u"
[a-z]Mencocokkan mana-mana watak dalam julat[a-z]Mana-mana huruf kecil

Pengelompokan dan Alternasi

SimbolPeneranganContohPadanan
(abc)Mengelompokkan beberapa token bersama dan menangkap padanan(abc)+"abc", "abcabc", dll.
a|bMencocokkan sama ada a atau bcat|dog"cat", "dog"

Pola Regex Lanjutan

Setelah anda menguasai asasnya, anda boleh mencipta pola yang lebih canggih untuk menyelesaikan cabaran pemprosesan teks yang kompleks:

Pengesahan Email

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Pola ini mengesahkan alamat email dengan memastikan ia mengikuti format standard: nama pengguna@domain.tld.

Pengesahan URL

^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$

Pola ini mengesahkan URL, termasuk yang dengan atau tanpa protokol http/https.

Pengesahan Nombor Telefon (Format AS)

^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$

Pola ini mencocokkan nombor telefon AS dalam pelbagai format: (123) 456-7890, 123-456-7890, atau 1234567890.

Pengesahan Tarikh (YYYY-MM-DD)

^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$

Pola ini mengesahkan tarikh dalam format YYYY-MM-DD, dengan pengesahan asas untuk julat bulan dan hari.

Lookahead dan Lookbehind

Pernyataan lookahead dan lookbehind membolehkan anda mencocokkan pola hanya jika ia diikuti oleh atau didahului oleh pola lain:

  • Lookahead positif: a(?=b) mencocokkan "a" hanya jika diikuti oleh "b"
  • Lookahead negatif: a(?!b) mencocokkan "a" hanya jika tidak diikuti oleh "b"
  • Lookbehind positif: (?<=a)b mencocokkan "b" hanya jika didahului oleh "a"
  • Lookbehind negatif: (?<!a)b mencocokkan "b" hanya jika tidak didahului oleh "a"

Bekerja dengan Bendera Regex

Penguji regex kami menyokong pelbagai bendera yang mengubah cara pola dipadankan:

  • g (Global): Cari semua padanan dan bukannya berhenti selepas padanan pertama
  • i (Tidak Sensitif Kes): Jadikan pola tidak sensitif kes
  • m (Multiline): Jadikan ^ dan $ padan dengan permulaan/akhir setiap baris
  • Gabungan: Anda boleh menggabungkan bendera untuk keperluan padanan yang lebih kompleks

Kes Penggunaan untuk Ujian Pola Regex

Ekspresi reguler mempunyai banyak aplikasi praktikal di pelbagai bidang:

Pembangunan Web

  1. Pengesahan Borang: Pastikan input pengguna padan dengan format yang diperlukan:

    • Alamat email: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
    • Kata laluan (dengan keperluan kompleksiti): ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
    • URL: ^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
  2. Penganalisis HTML: Ekstrak elemen atau atribut tertentu:

    • Cari semua tag gambar: <img[^>]+src="([^">]+)"
    • Ekstrak pautan: <a[^>]+href="([^">]+)"

Pemprosesan Data

  1. Analisis Fail Log: Ekstrak maklumat dari entri log:

    • Alamat IP: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
    • Cap waktu: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
    • Mesej ralat: ERROR: .*
  2. Pemprosesan CSV: Proses nilai yang dipisahkan dengan koma dengan potensi medan yang dipetik:

    • Pencocok medan CSV: (?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))

Pemprosesan Teks

  1. Cari dan Ganti: Kenal pasti pola untuk penggantian:

    • Buang tag HTML: <[^>]*>
    • Format nombor telefon: (\d{3})(\d{3})(\d{4})($1) $2-$3
  2. Ekstraksi Kandungan: Tarik maklumat tertentu dari teks tidak terstruktur:

    • Ekstrak tarikh: \b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
    • Cari nilai kewangan: \$\d+(?:\.\d{2})?

Pengaturcaraan dan Pengekodan

  1. Penyorotan Sintaks: Kenal pasti struktur bahasa:

    • Pembolehubah JavaScript: \b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
    • Definisi fungsi: function\s+([a-zA-Z_$][\w$]*)\s*\(
  2. Refactoring Kod: Cari pola yang perlu dikemas kini:

    • Panggilan API yang tidak lagi digunakan: \.oldMethod\(
    • Fungsi yang tidak selamat: eval\(

Menyimpan dan Mengurus Pola

Penguji pola regex kami termasuk sistem pengurusan pola yang membolehkan anda menyimpan dan menggunakan semula ekspresi yang sering anda gunakan:

Bila untuk Menyimpan Pola

Pertimbangkan untuk menyimpan pola yang:

  • Anda gunakan dengan kerap di pelbagai projek
  • Kompleks dan sukar diingat
  • Berfungsi untuk tujuan pengesahan tertentu dalam kerja anda
  • Anda telah memperhalusi selepas beberapa iterasi

Amalan Terbaik untuk Label Pola

Apabila menyimpan pola, gunakan label deskriptif yang:

  • Menunjukkan tujuan pola (contoh: "Pengesah Email")
  • Menyebut format tertentu (contoh: "Nombor Telefon AS")
  • Termasuk maklumat versi jika anda mengulangi pola (contoh: "Pengesah URL v2")
  • Ringkas tetapi bermakna

Pengorganisasian Pola

Atur pola yang disimpan anda dengan:

  • Fungsi (pengesahan, ekstraksi, penggantian)
  • Domain (pembangunan web, pemprosesan data)
  • Kompleksiti (asas, lanjutan)
  • Kekerapan penggunaan

Perkongsian Pola

Walaupun alat kami tidak menyokong perkongsian pola secara langsung antara pengguna, anda boleh:

  • Menyalin pola untuk dikongsi dengan rakan sekerja
  • Mendokumentasikan pola anda dalam repositori yang dikongsi
  • Menyertakan penerangan pola dalam dokumentasi projek

Menyelesaikan Masalah Umum dengan Regex

Walaupun pemaju berpengalaman menghadapi cabaran dengan ekspresi reguler. Berikut adalah penyelesaian kepada masalah umum:

Ralat Sintaks

Jika pola anda menunjukkan ralat pengesahan:

  • Semak untuk tanda kurung, kurungan, atau kurungan yang tidak dipadankan
  • Pastikan watak khas diubah suai dengan betul menggunakan backslash
  • Sahkan bahawa pengkuantiti mempunyai watak atau kumpulan yang mendahului
  • Cari sintaks kelas watak yang tidak sah

Masalah Prestasi

Jika regex anda lambat atau menyebabkan lag pelayar:

  • Elakkan penggunaan kuantiti bersarang yang berlebihan (contoh: (a+)+)
  • Berhati-hati dengan lookahead dan lookbehind dalam teks besar
  • Pertimbangkan untuk menggunakan pola yang lebih spesifik daripada yang luas
  • Pecahkan pola kompleks kepada bahagian yang lebih kecil dan lebih boleh diurus

Padanan Tidak Dijangka

Jika pola anda mencocokkan teks yang tidak diingini:

  • Gunakan penanda (^ dan $) untuk mencocokkan keseluruhan string
  • Jadikan kelas watak lebih spesifik
  • Tambah sempadan perkataan (\b) di tempat yang sesuai
  • Gunakan lookahead negatif untuk mengecualikan pola tertentu

Tiada Padanan Ditemui

Jika pola anda tidak mencocokkan teks yang diharapkan:

  • Semak isu sensitiviti kes (pertimbangkan untuk menggunakan bendera i)
  • Sahkan bahawa watak khas diubah suai dengan betul
  • Uji pola anda pada contoh yang dipermudahkan terlebih dahulu
  • Pastikan anda menggunakan kelas watak yang betul

Alternatif kepada Ekspresi Reguler

Walaupun regex sangat kuat, ia tidak selalu menjadi penyelesaian terbaik untuk setiap tugas pemprosesan teks:

Kaedah String

Untuk operasi teks yang mudah, kaedah string asli sering lebih jelas dan lebih cekap:

  • String.indexOf() untuk mencari substring
  • String.startsWith() dan String.endsWith() untuk memeriksa sempadan string
  • String.split() untuk pengtokenan asas

Penganalisis Khusus

Untuk format data yang terstruktur, penganalisis khusus lebih kukuh:

  • Penganalisis JSON untuk data JSON
  • Penganalisis XML/HTML untuk bahasa markup
  • Penganalisis CSV untuk data tabular

Pemprosesan Bahasa Semulajadi (NLP)

Untuk memahami makna teks daripada hanya pola:

  • Alat analisis sentimen
  • Pengenalan entiti bernama
  • Penandaan bahagian ucapan

Bila untuk Memilih Alternatif

Pertimbangkan alternatif kepada regex apabila:

  • Struktur teks sangat teratur dan mudah
  • Format mempunyai penganalisis standard yang tersedia
  • Anda perlu memahami makna semantik
  • Prestasi adalah kritikal untuk teks yang sangat besar

Soalan Lazim

Apa itu ekspresi reguler?

Ekspresi reguler (regex) adalah urutan watak yang mendefinisikan pola pencarian. Pola ini boleh digunakan untuk pencarian string, pencocokan, dan operasi manipulasi teks.

Mengapa saya perlu penguji pola regex?

Penguji pola regex membantu anda membangunkan dan menyahpepijat ekspresi reguler dengan memberikan maklum balas visual segera mengenai padanan, mengesahkan sintaks pola, dan membolehkan anda bereksperimen dengan pelbagai pola dan bendera tanpa perlu melaksanakannya dalam kod terlebih dahulu.

Bagaimana saya mencocokkan watak khas literal seperti titik atau asterisk?

Untuk mencocokkan watak khas literal yang biasanya mempunyai makna khas dalam regex, anda perlu mengubah suai mereka dengan backslash. Sebagai contoh, untuk mencocokkan titik literal, gunakan \. dan bukannya hanya ..

Apa perbezaan antara .* dan .*? dalam pola regex?

.* adalah pengkuantiti tamak yang mencocokkan sebanyak mungkin watak, manakala .*? adalah pengkuantiti malas (tidak tamak) yang mencocokkan seberapa sedikit watak yang mungkin. Perbezaan ini penting apabila anda ingin mencari padanan terpendek daripada yang terpanjang.

Bolehkah saya menggunakan penguji regex ini untuk pola dalam mana-mana bahasa pengaturcaraan?

Walaupun sintaks regex teras adalah serupa di banyak bahasa, terdapat perbezaan halus dalam pelaksanaan. Penguji kami menggunakan enjin regex JavaScript, yang serasi dengan banyak bahasa web tetapi mungkin mempunyai perbezaan daripada regex dalam bahasa seperti Python, Java, atau Perl.

Bagaimana saya mengesahkan keseluruhan string dengan regex?

Untuk mengesahkan bahawa keseluruhan string padan dengan pola, gunakan penanda ^ di awal dan penanda $ di akhir regex anda. Sebagai contoh, ^[0-9]+$ hanya akan mencocokkan string yang terdiri sepenuhnya daripada digit.

Apa itu kumpulan penangkapan dan bagaimana saya menggunakannya?

Kumpulan penangkapan, yang dibuat dengan tanda kurung (), membolehkan anda mengekstrak bahagian tertentu daripada teks yang dipadankan. Dalam penguji kami, anda boleh melihat semua padanan, termasuk kumpulan yang ditangkap. Dalam bahasa pengaturcaraan, anda biasanya boleh mengakses tangkapan ini melalui pengindeksan hasil padanan.

Bagaimana saya boleh menjadikan pola regex saya lebih cekap?

Untuk meningkatkan kecekapan regex: jadikan kelas watak lebih spesifik, elakkan kumpulan penangkapan yang tidak perlu (gunakan kumpulan tidak menangkap (?:...) apabila mungkin), hadkan penggunaan lookahead/lookbehind, dan elakkan pola yang menyebabkan backtracking yang bencana seperti kuantiti bersarang.

Apa kesilapan regex yang paling biasa untuk dielakkan?

Kesilapan biasa termasuk: tidak mengubah suai watak khas, mencipta pola yang terlalu tamak, melupakan untuk menandakan pola (dengan ^ dan $), dan menulis ungkapan yang terlalu kompleks yang sukar untuk diselenggara.

Bolehkah regex menangani struktur bersarang seperti HTML?

Ekspresi reguler tidak sesuai untuk menganalisis struktur bersarang seperti HTML atau XML. Walaupun anda boleh mencipta pola regex untuk pencocokan HTML yang mudah, secara amnya lebih baik menggunakan penganalisis HTML khusus untuk pemprosesan HTML yang kompleks.

Rujukan

  1. Friedl, J. E. F. (2006). Menguasai Ekspresi Reguler. O'Reilly Media.
  2. Goyvaerts, J., & Levithan, S. (2012). Buku Masakan Ekspresi Reguler. O'Reilly Media.
  3. "Ekspresi reguler." Wikipedia, Yayasan Wikimedia, https://en.wikipedia.org/wiki/Regular_expression
  4. MDN Web Docs. "Ekspresi Reguler." Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  5. RegExr: Belajar, Membina, & Menguji RegEx. https://regexr.com/

Cuba penguji pola regex kami hari ini untuk menyederhanakan tugas pemprosesan teks anda, mengesahkan format input, dan mengekstrak data yang bermakna dari teks tidak terstruktur. Sama ada anda seorang pemula yang mempelajari asas-asas ekspresi reguler atau pemaju berpengalaman yang bekerja pada pencocokan pola yang kompleks, alat kami menyediakan ciri yang anda perlukan untuk mencipta, menguji, dan memperhalusi pola regex anda dengan cekap.

Maklum balas