Penguji regex
Coba regular expression pada contoh teks dan lihat setiap kecocokan, capture group-nya, dan hasil replace.
Berjalan sepenuhnya di browser Anda
| # | Posisi | Kecocokan | Grup |
|---|
Sintaks regex JavaScript (ECMAScript) sesuai dukungan browser Anda. Teks hingga 5 MB; 1.000 kecocokan pertama ditampilkan dan disorot. Pola yang berjalan lebih dari 2 detik dihentikan.
Cara menguji regular expression
- Ketik pola di antara garis miring dan centang flag yang Anda butuhkan, misalnya
guntuk semua kecocokan atauiuntuk mengabaikan huruf besar/kecil. - Tempel teks uji Anda. Kecocokan disorot saat Anda mengetik, dan tabel menampilkan setiap kecocokan beserta posisi dan capture group-nya.
- Untuk mengecek substitusi, ketik pengganti seperti
$2-$1atau$<year>dan baca hasilnya di bawahnya.
Menguji pola dengan aman
Regex tester ini membangun RegExp JavaScript dari pola dan flag Anda lalu menjalankannya di worker latar belakang, dengan mesin yang sama yang akan dipakai kode Anda di browser ini. Kecocokan dikembalikan beserta posisi awal dan setiap capture group-nya, lalu halaman menggambarnya di atas teks Anda dengan sorotan berselang-seling agar kecocokan yang berdampingan tetap bisa dibedakan. Kecocokan kosong, seperti yang bisa dihasilkan \b atau a*, ditampilkan sebagai garis tipis.
Menjalankan pola di worker penting karena sebuah regular expression bisa memakan waktu eksponensial. Jika sebuah pola masih berjalan setelah 2 detik, worker dihentikan dan Anda mendapat pesan, bukan tab yang macet. Pengaman yang sama juga melindungi Cari dan ganti.
Posisi dihitung dalam unit kode UTF-16, cara string JavaScript menghitung: emoji atau karakter lain di luar basic plane memakan dua unit. Daftar menampilkan 1.000 kecocokan pertama; jumlah total di atasnya mencakup setiap kecocokan.
Tips
- Setelah pola berfungsi, terapkan ke seluruh dokumen dengan Cari dan ganti.
- Bandingkan teks sebelum dan sesudah replace dengan Bandingkan teks.
- Mencocokkan tanggal di log? Ubah timestamp menjadi waktu yang mudah dibaca dengan Konverter timestamp Unix.
Pertanyaan umum
Flavour regex apa yang dipakai?
Flavour JavaScript, yang dijalankan oleh mesin browser Anda sendiri, jadi hasilnya persis sama dengan RegExp di browser Anda atau Node.js. Sebagian besar sintaks sehari-hari sama dengan PCRE, Python dan Java, tetapi beberapa fitur berbeda: possessive quantifier dan atomic group tidak didukung, sedangkan lookbehind, named group dan flag v membutuhkan browser versi terbaru.
Mengapa hanya satu kecocokan yang ditampilkan?
Tanpa flag g (global), regex JavaScript hanya menemukan kecocokan pertama, dan replace hanya mengubah kemunculan pertama. Centang g untuk menemukan semuanya. Penguji ini mengikuti bahasanya persis, jadi apa yang Anda lihat adalah apa yang akan dilakukan kode Anda.
Apa fungsi flag-flag tersebut?
g menemukan semua kecocokan, i mengabaikan huruf besar/kecil, m membuat ^ dan $ cocok di setiap jeda baris, s membuat . cocok dengan jeda baris, u mengaktifkan penanganan Unicode penuh, v adalah mode Unicode yang lebih baru dengan operasi set, y (sticky) hanya mencocokkan di posisi saat ini, dan d mencatat posisi awal setiap grup, yang tetap dipakai penguji ini untuk posisi grup.
Bagaimana memakai grup di teks pengganti?
$1, $2 dan seterusnya menyisipkan grup bernomor, $<name> menyisipkan named group, $& menyisipkan seluruh kecocokan, $` dan $' menyisipkan teks sebelum dan sesudahnya, dan $$ menulis tanda dolar literal.
Mengapa pola saya berhenti dengan pesan "terlalu lama"?
Beberapa pola, seperti ^(a+)+$ pada deretan panjang huruf a yang akhirnya tidak sesuai harapan, membuat mesin mencoba jumlah cara pencocokan yang sangat besar. Ini disebut catastrophic backtracking. Penguji menjalankan setiap pola di worker latar belakang dan menghentikannya setelah 2 detik agar halaman tetap bisa dipakai. Tulis ulang pengulangan bersarang seperti (a+)+ menjadi a+.
Apakah teks saya dikirim ke suatu tempat?
Tidak. Pola dan teks tetap di browser Anda; pencocokan terjadi di perangkat Anda dan tidak ada yang diunggah atau disimpan.