Tester regex
Uji pola dengan teks asli, langsung di browser kamu.
| # | Tipe | Nilai | Posisi |
|---|
Jalan di browser kamu. Apa pun yang kamu ketik tidak dikirim ke mana pun.
- Highlight hasil cocok secara live
- Grup bernama dan bernomor
- Jalan aman di dalam worker
Cara menguji regular expression
- Ketik atau tempel pola kamu dan pilih flag yang kamu perlukan.
- Tempel teks yang mau kamu cocokkan.
- Lihat hasil cocok yang di-highlight, tabel grup, atau preview hasil penggantian.
Referensi cepat sintaks regex
| Pola | Cocok dengan |
|---|---|
| \d | Digit apa pun, 0 sampai 9 |
| \w | Huruf, digit, atau karakter _ |
| \s | Karakter whitespace apa pun |
| + | Satu atau lebih token sebelumnya |
| * | Nol atau lebih token sebelumnya |
| ? | Nol atau satu, atau membuat quantifier jadi lazy |
| ^ dan $ | Awal dan akhir string atau baris |
Fitur regex JavaScript
| Fitur | Sintaks | Catatan |
|---|---|---|
| Grup bernama | (?<nama>...) | Didukung sejak ES2018 |
| Lookbehind | (?<=...) dan (?<!...) | Didukung sejak ES2018 |
| Mode Unicode | flag u | Dibutuhkan untuk Unicode property escape seperti \p{Letter} |
| Case-insensitive | flag i | Konsepnya sama dengan kebanyakan bahasa lain |
Tips menulis pola
- Escape karakter spesial seperti . ( ) [ ] dengan backslash kalau kamu ingin memaksudkan karakter literalnya.
- Pakai grup non-capturing (?:...) untuk pengelompokan kalau kamu tidak perlu merujuk ke hasil cocok itu nanti.
- Quantifier greedy mengambil sebanyak mungkin. Tambahkan ? setelahnya, seperti +?, untuk lazy matching yang berhenti di titik pertama yang memungkinkan.
- Uji dengan kasus ekstrem, seperti string kosong atau spasi berlebih, bukan cuma teks yang kamu harapkan cocok.
FAQ Tester regex
Kenapa polaku berhenti merespons?
Sebagian pola bisa backtrack secara eksponensial pada teks tertentu. Proses pencocokan jalan di background worker dengan batas waktu 1,5 detik, jadi pola yang runaway dihentikan, bukan malah membuat tab macet.
Apa arti setiap flag?
g mencari semua hasil cocok, bukan cuma yang pertama; i mengabaikan huruf besar/kecil; m membuat ^ dan $ cocok per baris; s membuat titik bisa cocok dengan baris baru; u mengaktifkan mode Unicode penuh; y menjangkarkan pencocokan ke posisi terakhir; dan d menambahkan posisi awal serta akhir tiap hasil cocok.
Apakah kotak pengganti mengubah teks ujiku?
Tidak. Kotak itu hanya menampilkan apa yang akan dihasilkan String.replace di kotak hasil terpisah, jadi teks uji yang kamu ketik tetap sama persis.
Apakah named capture group didukung?
Ya. Tulis sebuah grup sebagai (?<nama>...) dan namanya akan muncul di samping nomor grup pada tabel hasil cocok.
Apakah teksku dikirim ke suatu tempat?
Tidak. Pencocokan jalan di dalam worker di tab browser kamu sendiri, dan tidak ada yang kamu ketik keluar dari halaman ini.
Regex flavor mana yang dipakai alat ini?
Engine RegExp JavaScript native bawaan browser kamu, yang sama persis dengan yang menjalankan pola kamu kalau kamu sedang membuat aplikasi web atau skrip Node.js.
Apa itu catastrophic backtracking?
Ini terjadi saat pola dengan grup berulang bersarang, seperti (a+)+b, bisa membutuhkan waktu yang bertambah secara eksponensial untuk gagal setiap input bertambah satu karakter saja. Batas waktu worker 1,5 detik di sini menangkap pola seperti itu sebelum sempat membuat halaman macet.
Bisakah ^ dan $ cocok dengan awal dan akhir setiap baris, bukan cuma seluruh string?
Bisa, aktifkan flag m (multiline). Tanpa flag ini, ^ dan $ hanya cocok dengan awal dan akhir dari keseluruhan teks uji.