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.

Tanpa garis miring yang mengapitnya.
Salah satu dari g i m s u y d v.

Disorot


    

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.

Sumber

Semua alat Kode