Penguji Regex
Penguji Regex
Penguji Regex: Mendukung pengujian ekspresi reguler secara real-time dengan kontrol flag, grup penangkapan, grup bernama, dan pratinjau penggantian instan. Dilengkapi deteksi risiko performa dan perlindungan timeout — ideal untuk validasi pola, ekstraksi teks, dan penggantian massal. Semua proses berlangsung secara lokal di browser.
/
/g
Pencarian global
Abaikan huruf besar/kecil
Multi-baris
Titik cocokkan baris baru
Mode Unicode
Cocokkan dari posisi saat ini
Teks Tes
Teks pengganti
Hasil pencocokan
Masukkan pola untuk mulai mencocokkan
Pratinjau Penggantian
Mulai cepat
Skenario umum
Ekstrak ID, email, tanggal, atau token khusus dari log dan teks Setelah itu hasilnya bisa langsung disalin, diunduh, atau diekspor.
Validasi format input pengguna sebelum diintegrasikan ke dalam kode Setelah itu hasilnya bisa langsung disalin, diunduh, atau diekspor.
Batch mengganti konten menggunakan grup tangkapan dan grup bernama Setelah itu hasilnya bisa langsung disalin, diunduh, atau diekspor.
Saran penggunaan
Batasan & kompatibilitas
Privasi & keamanan
Pertanyaan umum
Ekspresi reguler (regex) adalah bahasa pola untuk mendeskripsikan struktur teks. Anggap saja sebagai "penelusuran lanjutan" — alih-alih mencari kata tetap, Anda mencari semua yang cocok dengan aturan.\n\nMisalnya, \\d{4}-\\d{2}-\\d{2} cocok dengan semua tanggal dalam format YYYY-MM-DD, dan [\\w.]+@[\\w.]+ cocok dengan alamat email. Regex banyak digunakan untuk: pencarian & ekstraksi teks (menemukan kode kesalahan dalam log), validasi format (memeriksa nomor telepon), dan penggantian batch (mengonversi format tanggal).\n\nHampir semua bahasa pemrograman (JavaScript, Python, Java, Go, dll.) dan banyak alat (VS Code, grep, sed) mendukung regex dengan sebagian besar sintaksis serupa. Alat ini menggunakan mesin JavaScript RegExp untuk pengujian dan pembelajaran online cepat.
Regex JavaScript hanya mengembalikan kecocokan pertama secara default — ini adalah perilaku spesifikasi bahasa, bukan batasan alat. Klik tombol g di bilah tanda untuk mengaktifkan pencarian global dan melihat semua kecocokan.\n\nPerhatikan interaksi antara g dan y: g memindai seluruh teks dari awal hingga akhir, sedangkan y (lengket) mengharuskan setiap kecocokan dimulai tepat di tempat yang sebelumnya berakhir — jika ada karakter celah di antara kecocokan, y berhenti di celah pertama. Biasanya mengaktifkan g tanpa y saja sudah cukup.
Ada empat penyebab umum:\n\n1. Tanda kurung tak cocok: setiap ( harus ada yang cocok), setiap [ harus ada yang cocok ]. IDE mungkin melengkapinya secara otomatis, tetapi alat ini memerlukan pemasangan manual.\n2. Pembilang yang salah tempat: pembilang (*, +, ?, {n}) harus mengikuti elemen yang dapat dikuantifikasi. Kombinasi seperti *+ atau ?* adalah ilegal, kecuali bilangan pertama adalah ? untuk modifikasi malas (seperti *?).\n3. Pelarian yang tidak lengkap: satu-satunya \\ di akhir adalah ilegal — ia harus lolos dari karakter tertentu (seperti \\d, \\n, \\\\).\n4. Properti Unicode memerlukan tanda u: \\p{L}, \\p{Script=Han} dan properti Unicode serupa lolos dari kesalahan lemparan tanpa tanda u diaktifkan. Klik tombol u untuk mengaktifkannya.
Ini adalah token referensi pengganti yang ditentukan oleh String.prototype.replace() JavaScript:\n\n- $1, $2, ..., $99: mereferensikan konten yang diambil oleh grup tangkapan ke-n (...)\n- $&: seluruh teks yang cocok\n- $`: teks sebelum match\n- $': teks setelah pertandingan\n- ${name}: konten yang diambil oleh grup bernama (?<name>...)\n\nMisalnya, pola (\\w+)\\s(\\w+) yang cocok dengan "hello world" dengan pengganti $2-$1 menghasilkan "halo dunia". Untuk menyertakan $ literal dalam penggantinya, gunakan $$ untuk menghindarinya.
Batas waktu hampir selalu disebabkan oleh "kemunduran yang dahsyat". Ketika mesin regex menemukan bilangan bertingkat (seperti (a+)+b) atau jalur opsional yang tumpang tindih, mesin regex akan melakukan backtrack melalui jumlah kombinasi yang eksponensial, menyebabkan waktu pertandingan meledak.\n\nPola berbahaya yang umum: (a+)+, (.*?)*, (.+)+$ dll. Solusi:\n1. Mengganti . dengan kelas karakter yang tepat, mis. [^\\s]+ bukannya .+\n2. Hindari bilangan bertingkat — ubah (a+)+ menjadi a+\n3. Kurangi jalur opsional yang tumpang tindih — ubah (a|ab)+ menjadi a+b?\n\nSetelah menyesuaikan pola, klik tombol "Coba lagi" di area hasil pertandingan. Alat ini memiliki perlindungan batas waktu 4 detik dan tidak akan membekukan browser Anda.
Bahasa yang berbeda memiliki perbedaan mesin regex dalam tiga bidang utama:\n\n1. Dukungan sintaksis bervariasi: JavaScript tidak mendukung pola rekursif PCRE (?R), cabang bersyarat (?(cond)yes|no), atau grup atom (?>...). Modul re Python juga tidak memiliki ini, tetapi modul regexnya mendukungnya. Java mendukung grup atom tetapi tidak mendukung rekursi.\n2. Penanganan Unicode berbeda: proses ulang Python 3 \\w, \\d sebagai Unicode secara default; JavaScript menggunakan ASCII secara default — Anda harus mengaktifkan tanda u secara manual. Artinya \\w tidak akan cocok dengan karakter China dan \\b batas kata tidak berlaku di antara karakter CJK.\n3. Semantik baris baru berbeda: Python's . tidak cocok dengan \\n secara default (sama seperti JavaScript), sedangkan Pattern.DOTALL Java berperilaku sama dengan flag s JavaScript.\n\nRekomendasi: gunakan alat ini untuk verifikasi logika cepat, lalu lakukan konfirmasi akhir dengan mesin bahasa target Anda.