Langsung ke konten

Uji regular expression online

Uji regular expression JavaScript pada teks Anda dengan sorotan kecocokan langsung, grup tangkapan, dan penjelasan dalam bahasa sederhana, langsung di browser Anda.

Varian regex JavaScript (ECMAScript)Mesin yang sama dengan browser, Node.js, dan Deno Anda
//g

$1 atau $<name> menyisipkan grup, $& seluruh kecocokan, $` dan $' teks sebelum dan sesudahnya, $$ tanda dolar.

Kecocokan dan grup tangkapan muncul di sini.

Berjalan di browser Anda · tanpa unggahCara kerja

Cara menggunakan Penguji regex

  1. 1

    Masukkan pola

    Ketik ekspresi reguler tanpa garis miring; flag diatur lewat tombol di bawahnya.

  2. 2

    Tambahkan teks uji

    Tempel teks yang ingin dicari; kecocokan disorot dan dicantumkan beserta grup tangkapannya saat Anda mengetik.

  3. 3

    Periksa penjelasan

    Buka Penjelasan untuk membaca setiap token dengan bahasa sederhana dan memahami apa yang sebenarnya dilakukan pola.

  4. 4

    Lihat pratinjau penggantian

    Ketik teks pengganti dengan $1 atau $<name> untuk melihat hasilnya, lalu salin kode dari tab Kode.

Batas dan Pro

Gratis tanpa daftar: hingga 100.000 kecocokan dihitung, 2.000 disorot, dan 200 ditampilkan di tabel; penyorotan mencakup teks uji hingga 200.000 karakter, dan setiap proses dihentikan setelah 1,5 detik.

Pro menghilangkan iklan; penguji ini bekerja sama di semua paket. Lihat Pro

Tentang Penguji regex

Penguji ini menjalankan pola Anda dengan mesin ekspresi reguler JavaScript (ECMAScript) bawaan browser — mesin yang sama dengan yang dipakai Node.js, Deno, Bun, dan setiap halaman web — sehingga apa yang cocok di sini juga cocok di kode Anda. Ketik pola dan teks uji, lalu setiap kecocokan langsung disorot saat Anda mengetik, lengkap dengan tabel posisi, grup tangkapan bernomor, grup bernama, serta awal dan akhir tiap grup jika flag d aktif.

Kedelapan flag dapat diaktifkan atau dimatikan: g untuk semua kecocokan, i untuk mengabaikan huruf besar/kecil, m agar ^ dan $ bekerja per baris, s agar titik juga cocok dengan pemisah baris, u untuk Unicode penuh dan escape properti \p{…}, v untuk set Unicode dengan irisan dan pengurangan di dalam tanda kurung siku, y untuk pencocokan sticky, dan d untuk indeks. Kotak ganti menampilkan pratinjau String.prototype.replace dengan $1, $<name>, $& dan token pengganti lainnya, sedangkan tab Kode memberi cuplikan literal, matchAll, dan RegExp() yang sesuai.

Tab Penjelasan memecah pola menjadi token dan menjelaskan dengan bahasa sederhana fungsi masing-masing — grup, lookaround, kelas karakter, quantifier, serta apakah bersifat greedy atau lazy — dan Contekan menyisipkan token umum di posisi kursor.

Pencocokan berjalan di Web Worker latar belakang dengan batas 1,5 detik. Pola yang mengalami backtracking katastrofik, seperti (a+)+b pada deretan panjang huruf a, dihentikan disertai penjelasan, bukan membuat tab macet. Pola yang ditulis untuk PCRE, Python, atau .NET mungkin perlu disesuaikan: quantifier possessive, grup atomik, rekursi, \A, dan \Z tidak ada di JavaScript.

Privasi

Pola dan teks uji tetap berada di tab browser ini: pencocokan berjalan di Web Worker lokal dan apa pun yang Anda ketik tidak diunggah, dicatat, atau disimpan, sehingga aman untuk menguji baris log asli atau data pelanggan.

Fitur

Mesin JS yang asli

Mencocokkan persis seperti RegExp di browser dan Node.js, termasuk set flag v dan grup bernama.

Penjelasan token demi token

Setiap grup, kelas, anchor, dan quantifier dijelaskan dengan bahasa sederhana.

Perlindungan backtracking

Pencocokan berjalan di worker dengan batas 1,5 detik, jadi pola yang buruk tidak akan membuat halaman macet.

Penguji regex: pertanyaan yang sering diajukan

Regex versi apa yang dipakai penguji ini?
Versi JavaScript, sesuai standar ECMAScript dan diimplementasikan oleh browser yang Anda pakai. Mendukung lookbehind, grup bernama, escape properti Unicode, dan flag v, tetapi tidak mendukung fitur PCRE seperti quantifier possessive, grup atomik, rekursi, atau kondisional. Sintaks Python (?P<name>…) harus ditulis (?<name>…) di sini. Hasilnya sama dengan Node.js dan Deno pada versi mesin yang sama.
Mengapa pola saya hanya menemukan kecocokan pertama?
Tanpa flag g, JavaScript berhenti setelah kecocokan pertama: exec dan match hanya mengembalikan satu hasil, dan replace hanya mengubah kemunculan pertama. Aktifkan g untuk menemukan dan mengganti semua kecocokan. Flag sticky y berbeda: ia hanya cocok tepat di posisi tempat kecocokan sebelumnya berakhir, yang berguna untuk tokenizer.
Apa itu backtracking katastrofik?
Ketika sebuah pola bisa mencocokkan teks yang sama dengan banyak cara, seperti pada quantifier bersarang (a+)+ atau (.*)*, kecocokan yang gagal membuat mesin mencoba semua kombinasi, dan jumlahnya naik secara eksponensial mengikuti panjang input. Di sini proses dihentikan setelah 1,5 detik disertai peringatan. Perbaiki dengan membuat alternatif saling eksklusif, misalnya [^,]* alih-alih .* sebelum koma.
Bagaimana memakai grup tangkapan pada penggantian?
Tulis $1, $2, dan seterusnya untuk grup bernomor, atau $<name> untuk grup bernama seperti (?<year>\d{4}). $& menyisipkan seluruh kecocokan, $` teks sebelumnya, $' teks sesudahnya, dan $$ menghasilkan tanda dolar biasa. Coba contoh memuat pola tanggal yang menyusun ulang tahun, bulan, dan hari dengan cara ini.
Kapan saya perlu flag u atau v?
Pakai u saat teks Anda berisi emoji atau karakter lain di luar Basic Multilingual Plane, agar titik dan quantifier memperlakukannya sebagai satu karakter, serta untuk memakai properti Unicode bergaya \p{L}. Flag v yang lebih baru mencakup semua fungsi u dan menambahkan operasi set di dalam tanda kurung siku, seperti [\p{L}--[a-z]] untuk huruf non-ASCII. Kedua flag ini tidak bisa digabungkan.