Penguji Pola Regex
Hasil Kecocokan
Masukkan pola dan teks uji untuk melihat hasil
Simpan Pola
Hasil Kecocokan
Masukkan pola dan teks uji untuk melihat hasil
Pola yang Disimpan
Belum ada pola yang disimpan
Panduan Simbol Regex
.
Cocok dengan karakter apa pun kecuali newline\d
Cocok dengan digit apa pun (0-9)\D
Cocok dengan non-digit\w
Cocok dengan karakter kata apa pun (a-z, A-Z, 0-9, _)\W
Cocok dengan karakter non-kata\s
Cocok dengan karakter spasi apa pun\S
Cocok dengan karakter non-spasi^
Cocok dengan awal baris$
Cocok dengan akhir baris*
Cocok dengan 0 atau lebih dari karakter sebelumnya+
Cocok dengan 1 atau lebih dari karakter sebelumnya?
Cocok dengan 0 atau 1 dari karakter sebelumnya{n}
Cocok dengan tepat n dari karakter sebelumnya{n,}
Cocok dengan setidaknya n dari karakter sebelumnya{n,m}
Cocok dengan antara n dan m dari karakter sebelumnya[abc]
Cocok dengan salah satu karakter dalam tanda kurung[^abc]
Cocok dengan karakter yang tidak ada dalam tanda kurung(abc)
Mengelompokkan beberapa token bersama dan menangkap kecocokana|b
Cocok dengan a atau b\b
Cocok dengan posisi batas kataPenguji dan Validator Pola Regex
Pendahuluan
Penguji pola Ekspresi Reguler (regex) adalah alat penting bagi pengembang, analis data, dan siapa saja yang bekerja dengan pemrosesan teks. Validator pola regex yang komprehensif ini memungkinkan Anda untuk membuat, menguji, dan menyempurnakan ekspresi reguler secara real-time, memberikan umpan balik visual langsung tentang kecocokan pola. Apakah Anda memvalidasi alamat email, menganalisis file log, atau mengekstrak data tertentu dari teks, penguji regex kami membuat proses pengembangan dan debugging lebih cepat dan lebih intuitif.
Ekspresi reguler adalah urutan pola pencocokan yang kuat yang memungkinkan pencarian, validasi, dan manipulasi teks yang canggih. Namun, sintaksnya bisa kompleks dan sulit untuk dikuasai. Penguji pola regex ini menyederhanakan proses dengan menyoroti kecocokan saat Anda mengetik, memvalidasi sintaks pola, dan memungkinkan Anda menyimpan pola yang sering digunakan untuk referensi di masa mendatang.
Cara Menggunakan Penguji Pola Regex
Menggunakan validator pola regex kami sangat sederhana dan intuitif. Ikuti langkah-langkah ini untuk memulai:
-
Masukkan Pola Ekspresi Reguler: Ketik pola regex Anda di bidang input yang ditentukan. Alat ini memvalidasi pola Anda secara real-time, memberi tahu Anda tentang kesalahan sintaks.
-
Pilih Bendera Regex: Pilih bendera yang sesuai untuk pola Anda:
g
(Global): Temukan semua kecocokan daripada berhenti setelah kecocokan pertamai
(Tidak Sensitif Terhadap Huruf Besar): Membuat pola tidak sensitif terhadap huruf besarm
(Multiline): Membuat^
dan$
mencocokkan awal/akhir setiap baris- Berbagai kombinasi bendera ini tersedia di dropdown
-
Masukkan Teks Uji: Masukkan teks yang ingin Anda uji terhadap pola Anda di area teks uji.
-
Lihat Hasil Secara Real-Time: Saat Anda mengetik, alat secara otomatis:
- Menyoroti semua kecocokan pola dalam teks uji
- Menampilkan total jumlah kecocokan yang ditemukan
- Menunjukkan apakah pola mencocokkan seluruh teks
-
Simpan Pola Berguna: Untuk pola yang Anda gunakan sering:
- Masukkan label deskriptif untuk pola Anda
- Klik tombol "Simpan"
- Akses pola yang disimpan dari bagian "Pola Disimpan"
-
Salin Hasil: Gunakan tombol "Salin Kecocokan" untuk menyalin semua teks yang cocok ke clipboard Anda untuk digunakan di aplikasi lain.
Antarmuka dibagi menjadi dua panel utama: panel input tempat Anda memasukkan pola dan teks uji, dan panel hasil yang menampilkan kecocokan dan informasi pola.
Dasar-Dasar Ekspresi Reguler
Ekspresi reguler menggunakan karakter dan urutan khusus untuk mendefinisikan pola pencarian. Berikut adalah panduan untuk simbol regex dasar yang didukung oleh alat kami:
Pencocokan Karakter
Simbol | Deskripsi | Contoh | Kecocokan |
---|---|---|---|
. | Mencocokkan karakter apa pun kecuali newline | a.c | "abc", "adc", "a1c", dll. |
\d | Mencocokkan digit apa pun (0-9) | \d{3} | "123", "456", "789", dll. |
\D | Mencocokkan non-digit apa pun | \D+ | "abc", "xyz", dll. |
\w | Mencocokkan karakter kata apa pun (a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123", dll. |
\W | Mencocokkan non-karakter kata apa pun | \W+ | "!@#", " + ", dll. |
\s | Mencocokkan karakter whitespace apa pun | a\sb | "a b", "a\tb", dll. |
\S | Mencocokkan non-whitespace apa pun | \S+ | "abc", "123", dll. |
Penanda Posisi
Simbol | Deskripsi | Contoh | Kecocokan |
---|---|---|---|
^ | Mencocokkan awal baris | ^abc | "abc" di awal baris |
$ | Mencocokkan akhir baris | abc$ | "abc" di akhir baris |
\b | Mencocokkan batas kata | \bword\b | "word" sebagai kata lengkap |
Kuantifier
Simbol | Deskripsi | Contoh | Kecocokan |
---|---|---|---|
* | Mencocokkan 0 atau lebih dari karakter sebelumnya | a*b | "b", "ab", "aab", dll. |
+ | Mencocokkan 1 atau lebih dari karakter sebelumnya | a+b | "ab", "aab", "aaab", dll. |
? | Mencocokkan 0 atau 1 dari karakter sebelumnya | colou?r | "color", "colour" |
{n} | Mencocokkan tepat n dari karakter sebelumnya | a{3} | "aaa" |
{n,} | Mencocokkan setidaknya n dari karakter sebelumnya | a{2,} | "aa", "aaa", "aaaa", dll. |
{n,m} | Mencocokkan antara n dan m dari karakter sebelumnya | a{2,4} | "aa", "aaa", "aaaa" |
Kelas Karakter
Simbol | Deskripsi | Contoh | Kecocokan |
---|---|---|---|
[abc] | Mencocokkan salah satu karakter dalam kurung | [aeiou] | "a", "e", "i", "o", "u" |
[^abc] | Mencocokkan karakter apa pun yang tidak ada dalam kurung | [^aeiou] | Karakter apa pun kecuali "a", "e", "i", "o", "u" |
[a-z] | Mencocokkan karakter apa pun dalam rentang | [a-z] | Huruf kecil apa pun |
Pengelompokan dan Alternasi
Simbol | Deskripsi | Contoh | Kecocokan |
---|---|---|---|
(abc) | Mengelompokkan beberapa token bersama dan menangkap kecocokan | (abc)+ | "abc", "abcabc", dll. |
a|b | Mencocokkan baik a atau b | cat|dog | "cat", "dog" |
Pola Regex Lanjutan
Setelah Anda menguasai dasar-dasarnya, Anda dapat membuat pola yang lebih canggih untuk menyelesaikan tantangan pemrosesan teks yang kompleks:
Validasi Email
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Pola ini memvalidasi alamat email dengan memastikan mereka mengikuti format standar: username@domain.tld.
Validasi URL
^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
Pola ini memvalidasi URL, termasuk yang dengan atau tanpa protokol http/https.
Validasi Nomor Telepon (Format AS)
^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
Pola ini mencocokkan nomor telepon AS dalam berbagai format: (123) 456-7890, 123-456-7890, atau 1234567890.
Validasi Tanggal (YYYY-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
Pola ini memvalidasi tanggal dalam format YYYY-MM-DD, dengan validasi dasar untuk rentang bulan dan hari.
Lookahead dan Lookbehind
Pernyataan lookahead dan lookbehind memungkinkan Anda mencocokkan pola hanya jika diikuti oleh atau didahului oleh pola lain:
- Positive lookahead:
a(?=b)
mencocokkan "a" hanya jika diikuti oleh "b" - Negative lookahead:
a(?!b)
mencocokkan "a" hanya jika tidak diikuti oleh "b" - Positive lookbehind:
(?<=a)b
mencocokkan "b" hanya jika didahului oleh "a" - Negative lookbehind:
(?<!a)b
mencocokkan "b" hanya jika tidak didahului oleh "a"
Bekerja dengan Bendera Regex
Penguji regex kami mendukung berbagai bendera yang memodifikasi cara pola dicocokkan:
- g (Global): Temukan semua kecocokan daripada berhenti setelah kecocokan pertama
- i (Tidak Sensitif Terhadap Huruf Besar): Membuat pola tidak sensitif terhadap huruf besar
- m (Multiline): Membuat
^
dan$
mencocokkan awal/akhir setiap baris - Kombinasi: Anda dapat menggabungkan bendera untuk persyaratan pencocokan yang lebih kompleks
Kasus Penggunaan untuk Pengujian Pola Regex
Ekspresi reguler memiliki banyak aplikasi praktis di berbagai bidang:
Pengembangan Web
-
Validasi Formulir: Pastikan input pengguna sesuai dengan format yang diperlukan:
- Alamat email:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
- Kata sandi (dengan persyaratan kompleksitas):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
- URL:
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
- Alamat email:
-
Parsing HTML: Ekstrak elemen atau atribut tertentu:
- Temukan semua tag gambar:
<img[^>]+src="([^">]+)"
- Ekstrak tautan:
<a[^>]+href="([^">]+)"
- Temukan semua tag gambar:
Pemrosesan Data
-
Analisis File Log: Ekstrak informasi dari entri log:
- Alamat IP:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
- Timestamp:
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
- Pesan kesalahan:
ERROR: .*
- Alamat IP:
-
Parsing CSV: Proses nilai yang dipisahkan koma dengan kemungkinan bidang yang terkutip:
- Pencocokkan bidang CSV:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
- Pencocokkan bidang CSV:
Pemrosesan Teks
-
Temukan dan Ganti: Identifikasi pola untuk penggantian:
- Hapus tag HTML:
<[^>]*>
- Format nomor telepon:
(\d{3})(\d{3})(\d{4})
→($1) $2-$3
- Hapus tag HTML:
-
Ekstraksi Konten: Ambil informasi spesifik dari teks yang tidak terstruktur:
- Ekstrak tanggal:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
- Temukan nilai moneter:
\$\d+(?:\.\d{2})?
- Ekstrak tanggal:
Pemrograman dan Koding
-
Penyorotan Sintaks: Identifikasi konstruksi bahasa:
- Variabel JavaScript:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
- Definisi fungsi:
function\s+([a-zA-Z_$][\w$]*)\s*\(
- Variabel JavaScript:
-
Refactoring Kode: Temukan pola yang perlu diperbarui:
- Panggilan API yang sudah tidak digunakan:
\.oldMethod\(
- Fungsi yang tidak aman:
eval\(
- Panggilan API yang sudah tidak digunakan:
Menyimpan dan Mengelola Pola
Penguji pola regex kami mencakup sistem manajemen pola yang memungkinkan Anda untuk menyimpan dan menggunakan kembali ekspresi yang sering Anda gunakan:
Kapan Harus Menyimpan Pola
Pertimbangkan untuk menyimpan pola yang:
- Anda gunakan sering di berbagai proyek
- Kompleks dan sulit diingat
- Melayani tujuan validasi tertentu dalam pekerjaan Anda
- Telah Anda sempurnakan setelah beberapa iterasi
Praktik Terbaik untuk Label Pola
Saat menyimpan pola, gunakan label deskriptif yang:
- Menunjukkan tujuan pola (misalnya, "Validator Email")
- Menyebutkan format tertentu (misalnya, "Nomor Telepon AS")
- Menyertakan informasi versi jika Anda iterasi pada pola (misalnya, "Validator URL v2")
- Singkat tetapi informatif
Organisasi Pola
Organisir pola yang disimpan Anda dengan:
- Fungsi (validasi, ekstraksi, penggantian)
- Domain (pengembangan web, pemrosesan data)
- Kompleksitas (dasar, lanjutan)
- Frekuensi penggunaan
Berbagi Pola
Sementara alat kami tidak mendukung berbagi pola langsung antar pengguna, Anda dapat:
- Menyalin pola untuk dibagikan dengan rekan
- Mendokumentasikan pola Anda dalam repositori bersama
- Menyertakan deskripsi pola dalam dokumentasi proyek
Memecahkan Masalah Umum dengan Regex
Bahkan pengembang berpengalaman menghadapi tantangan dengan ekspresi reguler. Berikut adalah solusi untuk masalah umum:
Kesalahan Sintaks
Jika pola Anda menunjukkan kesalahan validasi:
- Periksa tanda kurung, kurung siku, atau kurung yang tidak cocok
- Pastikan karakter khusus di-escape dengan benar menggunakan backslash
- Verifikasi bahwa kuantifier memiliki karakter atau grup sebelumnya
- Cari sintaks kelas karakter yang tidak valid
Masalah Kinerja
Jika regex Anda lambat atau menyebabkan lag di browser:
- Hindari penggunaan kuantifier bersarang yang berlebihan (misalnya,
(a+)+
) - Hati-hati dengan lookahead dan lookbehind di teks besar
- Pertimbangkan untuk menggunakan pola yang lebih spesifik daripada yang luas
- Pecah pola kompleks menjadi bagian yang lebih kecil dan lebih mudah dikelola
Kecocokan yang Tidak Diharapkan
Jika pola Anda mencocokkan teks yang tidak diinginkan:
- Gunakan penanda (
^
dan$
) untuk mencocokkan string secara keseluruhan - Buat kelas karakter lebih spesifik
- Tambahkan batas kata (
\b
) di tempat yang tepat - Gunakan negative lookahead untuk mengecualikan pola tertentu
Tidak Ada Kecocokan yang Ditemukan
Jika pola Anda tidak mencocokkan teks yang diharapkan:
- Periksa masalah sensitivitas huruf besar/kecil (pertimbangkan menggunakan bendera
i
) - Verifikasi bahwa karakter khusus di-escape dengan benar
- Uji pola Anda pada contoh yang disederhanakan terlebih dahulu
- Pastikan Anda menggunakan kelas karakter yang benar
Alternatif untuk Ekspresi Reguler
Meskipun regex sangat kuat, itu tidak selalu menjadi solusi terbaik untuk setiap tugas pemrosesan teks:
Metode String
Untuk operasi teks sederhana, metode string bawaan seringkali lebih jelas dan lebih efisien:
String.indexOf()
untuk menemukan substringString.startsWith()
danString.endsWith()
untuk memeriksa batas stringString.split()
untuk tokenisasi dasar
Parser Khusus
Untuk format data terstruktur, parser khusus lebih robust:
- Parser JSON untuk data JSON
- Parser XML/HTML untuk bahasa markup
- Parser CSV untuk data tabular
Pemrosesan Bahasa Alami (NLP)
Untuk memahami makna teks daripada hanya pola:
- Alat analisis sentimen
- Pengenalan entitas bernama
- Penandaan bagian dari ucapan
Kapan Memilih Alternatif
Pertimbangkan alternatif untuk regex ketika:
- Struktur teks sangat teratur dan sederhana
- Format memiliki parser standar yang tersedia
- Anda perlu memahami makna semantik
- Kinerja sangat penting untuk teks yang sangat besar
Pertanyaan yang Sering Diajukan
Apa itu ekspresi reguler?
Ekspresi reguler (regex) adalah urutan karakter yang mendefinisikan pola pencarian. Pola ini dapat digunakan untuk pencarian string, pencocokan, dan operasi manipulasi teks.
Mengapa saya perlu penguji pola regex?
Penguji pola regex membantu Anda mengembangkan dan memperbaiki ekspresi reguler dengan memberikan umpan balik visual langsung tentang kecocokan, memvalidasi sintaks pola, dan memungkinkan Anda bereksperimen dengan pola dan bendera yang berbeda tanpa harus mengimplementasikannya dalam kode terlebih dahulu.
Bagaimana cara mencocokkan karakter khusus literal seperti titik atau asterisk?
Untuk mencocokkan karakter khusus literal yang biasanya memiliki arti khusus dalam regex, Anda perlu meng-escape mereka dengan backslash. Misalnya, untuk mencocokkan titik literal, gunakan \.
alih-alih hanya .
.
Apa perbedaan antara .*
dan .*?
dalam pola regex?
.*
adalah kuantifier rakus yang mencocokkan sebanyak mungkin karakter, sedangkan .*?
adalah kuantifier malas (non-rakus) yang mencocokkan sesedikit mungkin karakter. Perbedaan ini penting ketika Anda ingin menemukan kecocokan terpendek daripada terpanjang.
Bisakah saya menggunakan penguji regex ini untuk pola di bahasa pemrograman mana pun?
Meskipun sintaks regex inti mirip di banyak bahasa, ada perbedaan halus dalam implementasi. Penguji kami menggunakan mesin regex JavaScript, yang kompatibel dengan banyak bahasa web tetapi mungkin memiliki perbedaan dari regex di bahasa seperti Python, Java, atau Perl.
Bagaimana cara memvalidasi seluruh string dengan regex?
Untuk memvalidasi bahwa seluruh string mencocokkan pola, gunakan penanda ^
di awal dan penanda $
di akhir regex Anda. Misalnya, ^[0-9]+$
hanya akan mencocokkan string yang terdiri sepenuhnya dari digit.
Apa itu grup penangkap dan bagaimana cara menggunakannya?
Grup penangkap, yang dibuat dengan tanda kurung ()
, memungkinkan Anda untuk mengekstrak bagian tertentu dari teks yang dicocokkan. Di penguji kami, Anda dapat melihat semua kecocokan, termasuk grup yang ditangkap. Di bahasa pemrograman, Anda biasanya dapat mengakses penangkapan ini melalui pengindeksan hasil kecocokan.
Bagaimana saya bisa membuat pola regex saya lebih efisien?
Untuk meningkatkan efisiensi regex: jadilah spesifik dengan kelas karakter, hindari grup penangkap yang tidak perlu (gunakan grup non-penangkap (?:...)
jika memungkinkan), batasi penggunaan lookahead/lookbehind, dan hindari pola backtracking yang bencana seperti kuantifier bersarang.
Apa kesalahan regex yang paling umum untuk dihindari?
Kesalahan umum termasuk: tidak meng-escape karakter khusus, membuat pola yang terlalu rakus, melupakan untuk menandai pola (dengan ^
dan $
), dan menulis ekspresi yang terlalu kompleks yang sulit untuk dipelihara.
Bisakah regex menangani struktur bersarang seperti HTML?
Ekspresi reguler tidak cocok untuk mem-parsing struktur bersarang seperti HTML atau XML. Meskipun Anda dapat membuat pola regex untuk pencocokan HTML sederhana, umumnya lebih baik menggunakan parser HTML khusus untuk pemrosesan HTML yang kompleks.
Referensi
- Friedl, J. E. F. (2006). Menguasai Ekspresi Reguler. O'Reilly Media.
- Goyvaerts, J., & Levithan, S. (2012). Buku Masak 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: Pelajari, Bangun, & Uji RegEx. https://regexr.com/
Cobalah penguji pola regex kami hari ini untuk menyederhanakan tugas pemrosesan teks Anda, memvalidasi format input, dan mengekstrak data yang berarti dari teks yang tidak terstruktur. Apakah Anda seorang pemula yang belajar dasar-dasar ekspresi reguler atau pengembang berpengalaman yang bekerja pada pencocokan pola yang kompleks, alat kami menyediakan fitur yang Anda butuhkan untuk membuat, menguji, dan menyempurnakan pola regex Anda secara efisien.