DokumenGambarMediaAlat PDF

Tester Regex Online

Uji ekspresi reguler secara real time dengan penyorotan kecocokan.

//

2 matches found

#1hello@convertir.ai@14
#2support@example.com@36
Processed in your browser

Debug regex Anda secara instan

Real time

Kecocokan disorot saat Anda mengetik. Tanpa reload, tanpa tombol submit.

Grup capture

Lihat setiap grup yang ditangkap secara terpisah dengan indeks dan nilainya.

Semua flag

Dukungan penuh untuk flag g, i, m, s dari mesin ECMAScript/JavaScript.

Data tidak dikirim

Teks uji Anda tidak pernah meninggalkan browser. Ideal untuk data sensitif.

Tiga langkah, tanpa kerumitan

1

Masukkan pola regex Anda

Ketik ekspresi reguler Anda di field pola. Pilih flag: g, i, m, s.

2

Tempelkan teks uji

Masukkan teks yang ingin Anda uji terhadap pola tersebut. Kecocokan disorot secara instan.

3

Periksa hasilnya

Tinjau kecocokan lengkap dan grup capture. Sesuaikan pola hingga mendapatkan hasil yang diinginkan.

Ada pertanyaan?

Ekspresi reguler (regex atau regexp) adalah rangkaian karakter yang mendefinisikan pola pencarian dalam teks. Ekspresi reguler merupakan bahasa formal yang berasal dari teori automata dan teori bahasa formal. Dengan regex, Anda dapat mencari, memvalidasi, mengekstrak, dan mengganti teks dengan pola yang kompleks dalam satu baris kode. Regex digunakan di setiap bahasa pemrograman, editor teks, basis data, dan alat baris perintah.

Pola yang paling sering digunakan meliputi: email (^[\w.+-]+@[\w-]+\.[\w.]+$), URL (https?://[\S]+), nomor telepon (\+?[\d\s\-()]{7,15}), kode pos (/^\d{5}(-\d{4})?$/), tanggal ISO (\d{4}-\d{2}-\d{2}), IPv4 (\b(?:\d{1,3}\.){3}\d{1,3}\b), dan hanya alfanumerik ([a-zA-Z0-9]+). Pola-pola ini adalah titik awal dan selalu harus disesuaikan dengan format yang diharapkan dalam produksi.

Flag mengubah perilaku pola: g (global) menemukan semua kecocokan alih-alih berhenti di yang pertama; i (insensitive) mengabaikan perbedaan huruf besar-kecil; m (multiline) membuat ^ dan $ cocok dengan awal dan akhir setiap baris, bukan hanya keseluruhan teks; s (dotAll) membuat titik (.) cocok dengan baris baru juga, yang biasanya tidak diikutsertakan. Flag dapat dikombinasikan seperti /pola/gim.

Grup capture yang didefinisikan dengan tanda kurung () memungkinkan Anda mengekstrak bagian tertentu dari kecocokan. Sebagai contoh, /(\d{4})-(\d{2})-(\d{2})/ pada teks 2024-03-15 menangkap tiga grup: tahun, bulan, dan hari. Grup bernama seperti (?<nama>pola) memungkinkan akses berdasarkan nama alih-alih indeks numerik. Grup non-capture (?:pola) melakukan pengelompokan tanpa menangkap, berguna untuk menerapkan quantifier tanpa membuat grup.

Lookahead dan lookbehind adalah assertion posisi yang memeriksa apa yang ada sebelum atau sesudah posisi tertentu tanpa mengonsumsi karakter. Lookahead positif (?=pola): cocok jika diikuti oleh pola. Lookahead negatif (?!pola): cocok jika TIDAK diikuti oleh pola. Lookbehind positif (?<=pola): cocok jika didahului oleh pola. Lookbehind negatif (?<!pola): cocok jika TIDAK didahului oleh pola. Sebagai contoh, \d+(?= dollar) mengekstrak angka yang diikuti oleh kata dollar tanpa menyertakan kata tersebut.

Sejarah ekspresi reguler: dari Kleene 1951 hingga PCRE

Ekspresi reguler dirumuskan secara matematis oleh Stephen Kleene pada tahun 1951 dalam makalahnya yang memperkenalkan notasi aljabar untuk bahasa reguler. Operator penutupan Kleene (*) dinamai sesuai namanya. Implementasi perangkat lunak praktis pertama dilakukan oleh Ken Thompson dalam editor teks qed pada tahun 1968. Thompson mengimplementasikan regex dengan konstruksi NFA (non-deterministic finite automaton) yang efisien dan menjamin kompleksitas O(n) dalam ukuran teks.

PCRE (Perl Compatible Regular Expressions) dibuat oleh Philip Hazel pada tahun 1997 sebagai pustaka C yang mengimplementasikan ulang sintaks regex Perl 5. PCRE menambahkan fitur yang tidak ada pada mesin klasik: lookahead/lookbehind, grup bernama, backreferences, dan rekursi. PCRE menjadi mesin regex de facto untuk PHP, Apache, nginx, R, dan ratusan aplikasi lainnya. ECMAScript (JavaScript) mengimplementasikan mesinnya sendiri dengan semantik serupa namun berbeda, terutama dukungan lookbehind yang baru ditambahkan di ES2018.

Dalam pengembangan web modern, regex sangat penting untuk validasi formulir di browser, ekstraksi data dalam scraping, transformasi dalam build tool seperti webpack dan vite, aturan routing dalam framework seperti Express dan Next.js, serta pencarian lanjutan dalam editor seperti VS Code. Perbedaan antara ragam PCRE dan ECMAScript terutama memengaruhi: lookbehind dengan panjang variabel (PCRE mendukungnya, ECMAScript memiliki batasan), referensi kondisional dan rekursi (hanya PCRE), serta beberapa urutan escape.