Penguji regular expression
Uji regular expression JavaScript pada teks Anda dan lihat semua kecocokan serta capture group-nya, di browser Anda.
Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah, dicatat, atau disimpan.
Disorot
| # | Kecocokan | Indeks | Grup |
|---|
Tulis pola, tempel teks yang Anda harapkan cocok, dan lihat seketika apa yang tertangkap dan apa yang terlewat, dengan setiap capture group dirinci.
Cara kerja
Pola dikompilasi oleh browser Anda dan dijalankan pada teks saat Anda mengetik. Yang Anda lihat persis sama dengan yang akan dilakukan ekspresi yang sama di JavaScript, karena mesinnya sama.
Dengan flag g, semua kecocokan ditampilkan; tanpanya, hanya yang pertama. Flag i mengabaikan huruf besar dan kecil, m membuat ^ dan $ cocok di batas baris, s membuat titik cocok dengan baris baru, u mengaktifkan mode Unicode, dan y menambatkan pencarian pada indeks terakhir.
Capture group bernomor ditampilkan berurutan; grup yang ditulis sebagai (?<nama>...) ditampilkan dengan namanya.
Contoh
| Kasus | Masukan | Hasil |
|---|---|---|
| Tanggal ISO, dipisah menjadi bagian-bagiannya | (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) | tahun, bulan, dan hari sebagai grup bernama |
| Semua hashtag dalam sebuah unggahan | #\w+ | satu kecocokan per hashtag, dengan flag g |
Pertanyaan umum
Regex jenis apa ini?
Regex JavaScript, sebagaimana diimplementasikan oleh browser Anda. PCRE, yang dipakai PHP dan grep -P, serta RE2, yang dipakai Go, berbeda dalam hal lookbehind, quantifier posesif, dan escape properti Unicode. Pola yang berfungsi di sini belum tentu berfungsi di sana.
Halaman macet saat saya mengetik pola.
Beberapa pola mengalami backtracking katastrofik pada teks tertentu: quantifier bersarang seperti (a+)+ adalah contoh klasiknya. Pencarian pada seluruh teks dibatasi dan berhenti dengan peringatan, tetapi satu kecocokan yang lepas kendali tidak bisa dihentikan oleh apa pun di halaman: JavaScript tidak punya cara untuk menghentikan regular expression yang sudah berjalan. Muat ulang tab dan anggap ini sebagai temuan, bukan kecelakaan: ekspresi yang sama di server akan melumpuhkan sebuah proses.
Apakah garis miring perlu disertakan?
Tidak. Tulis polanya saja dan masukkan flag di kolom flag. Menempel /abc/gi sebagai pola membuat garis miringnya ikut menjadi bagian dari yang Anda cari.
Apakah teks uji saya dikirim ke suatu tempat?
Tidak, dan teks itu juga sengaja tidak disertakan dalam tautan berbagi. Menyalin tautan hanya membagikan pola dan flag, tidak pernah teks yang Anda uji.
Perlu diketahui
- Pola tidak pernah dijalankan di server. Ekspresi dari pengunjung yang backtracking-nya buruk akan menjadi denial of service di sana; di sebuah tab, kerugiannya tidak lebih dari tab itu sendiri.