P tester Corak Regex
Keputusan Padanan
Masukkan corak dan teks ujian untuk melihat keputusan
Simpan Corak
Keputusan Padanan
Masukkan corak dan teks ujian untuk melihat keputusan
Corak Tersimpan
Tiada corak tersimpan lagi
Panduan Simbol Regex
.
Padan dengan mana-mana watak kecuali baris baru\d
Padan dengan mana-mana digit (0-9)\D
Padan dengan mana-mana bukan digit\w
Padan dengan mana-mana watak perkataan (a-z, A-Z, 0-9, _)\W
Padan dengan mana-mana bukan watak perkataan\s
Padan dengan mana-mana watak ruang\S
Padan 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 padanana|b
Padan dengan sama ada a atau b\b
Padan dengan posisi sempadan perkataanPenguji 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:
-
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.
-
Pilih Bendera Regex: Pilih bendera yang sesuai untuk pola anda:
g
(Global): Cari semua padanan dan bukannya berhenti selepas padanan pertamai
(Tidak Sensitif Kes): Jadikan pola tidak sensitif kesm
(Multiline): Jadikan^
dan$
padan dengan permulaan/akhir setiap baris- Pelbagai gabungan bendera ini tersedia dalam dropdown
-
Masukkan Teks Uji: Masukkan teks yang ingin anda uji terhadap pola anda di kawasan teks uji.
-
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
-
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"
-
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
Simbol | Penerangan | Contoh | Padanan |
---|---|---|---|
. | Mencocokkan mana-mana watak kecuali newline | a.c | "abc", "adc", "a1c", dll. |
\d | Mencocokkan mana-mana digit (0-9) | \d{3} | "123", "456", "789", dll. |
\D | Mencocokkan mana-mana bukan digit | \D+ | "abc", "xyz", dll. |
\w | Mencocokkan mana-mana watak perkataan (a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123", dll. |
\W | Mencocokkan mana-mana bukan watak perkataan | \W+ | "!@#", " + ", dll. |
\s | Mencocokkan mana-mana watak ruang | a\sb | "a b", "a\tb", dll. |
\S | Mencocokkan mana-mana bukan watak ruang | \S+ | "abc", "123", dll. |
Penanda Posisi
Simbol | Penerangan | Contoh | Padanan |
---|---|---|---|
^ | Mencocokkan permulaan baris | ^abc | "abc" di permulaan baris |
$ | Mencocokkan akhir baris | abc$ | "abc" di akhir baris |
\b | Mencocokkan sempadan perkataan | \bword\b | "word" sebagai perkataan lengkap |
Pengkuantiti
Simbol | Penerangan | Contoh | Padanan |
---|---|---|---|
* | Mencocokkan 0 atau lebih daripada watak yang mendahului | a*b | "b", "ab", "aab", dll. |
+ | Mencocokkan 1 atau lebih daripada watak yang mendahului | a+b | "ab", "aab", "aaab", dll. |
? | Mencocokkan 0 atau 1 daripada watak yang mendahului | colou?r | "color", "colour" |
{n} | Mencocokkan tepat n daripada watak yang mendahului | a{3} | "aaa" |
{n,} | Mencocokkan sekurang-kurangnya n daripada watak yang mendahului | a{2,} | "aa", "aaa", "aaaa", dll. |
{n,m} | Mencocokkan antara n dan m daripada watak yang mendahului | a{2,4} | "aa", "aaa", "aaaa" |
Kelas Watak
Simbol | Penerangan | Contoh | Padanan |
---|---|---|---|
[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
Simbol | Penerangan | Contoh | Padanan |
---|---|---|---|
(abc) | Mengelompokkan beberapa token bersama dan menangkap padanan | (abc)+ | "abc", "abcabc", dll. |
a|b | Mencocokkan sama ada a atau b | cat|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
-
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 \.-]*)*\/?$
- Alamat email:
-
Penganalisis HTML: Ekstrak elemen atau atribut tertentu:
- Cari semua tag gambar:
<img[^>]+src="([^">]+)"
- Ekstrak pautan:
<a[^>]+href="([^">]+)"
- Cari semua tag gambar:
Pemprosesan Data
-
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: .*
- Alamat IP:
-
Pemprosesan CSV: Proses nilai yang dipisahkan dengan koma dengan potensi medan yang dipetik:
- Pencocok medan CSV:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
- Pencocok medan CSV:
Pemprosesan Teks
-
Cari dan Ganti: Kenal pasti pola untuk penggantian:
- Buang tag HTML:
<[^>]*>
- Format nombor telefon:
(\d{3})(\d{3})(\d{4})
→($1) $2-$3
- Buang tag HTML:
-
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})?
- Ekstrak tarikh:
Pengaturcaraan dan Pengekodan
-
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*\(
- Pembolehubah JavaScript:
-
Refactoring Kod: Cari pola yang perlu dikemas kini:
- Panggilan API yang tidak lagi digunakan:
\.oldMethod\(
- Fungsi yang tidak selamat:
eval\(
- Panggilan API yang tidak lagi digunakan:
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 substringString.startsWith()
danString.endsWith()
untuk memeriksa sempadan stringString.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
- Friedl, J. E. F. (2006). Menguasai Ekspresi Reguler. O'Reilly Media.
- Goyvaerts, J., & Levithan, S. (2012). Buku Masakan Ekspresi Reguler. O'Reilly Media.
- "Ekspresi reguler." Wikipedia, Yayasan Wikimedia, https://en.wikipedia.org/wiki/Regular_expression
- MDN Web Docs. "Ekspresi Reguler." Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
- 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.