Editor

Menunggu input atau eksekusi regex…

Tindakan

?
?
?

Tentang Penguji Regex Online

Tempelkan teks, tulis pola regex, aktifkan flag, dan lihat langsung apa yang cocok. Penguji regex ini menggunakan mesin RegExp yang sama dengan runtime JavaScript modern, jadi yang Anda lihat di sini adalah yang akan Anda dapatkan dalam kode frontend, skrip Node.js, atau validasi sisi server. Grup penangkapan bernama, lookaround, dan mode Unicode didukung saat runtime Anda mendukungnya.

Mengapa Menggunakan Penguji Regex Ini

  • Pencocokan real-time dengan mode "langsung" opsional untuk menjalankan ulang saat Anda mengetik
  • Daftar kecocokan terstruktur dengan indeks awal, indeks akhir, nilai, dan grup tangkapan bernama
  • Dukungan penuh sintaks RegExp JavaScript/ECMAScript (mesin yang sama dengan runtime JS Anda)
  • Kontrol flag: g, i, m, s, u, y – gabungkan dan eksperimen dengan aman
  • Wawasan kinerja dasar dengan waktu eksekusi per-jalan dalam milidetik
  • Ringkasan output hanya teks untuk salin/tempel cepat ke tiket, dokumen, atau pesan commit
  • Sangat baik untuk belajar: prototipe pola tanpa menjalankan proyek atau rangkaian tes penuh
  • Ideal untuk tugas sehari-hari: parsing log, validasi, ekstraksi URL/ID, pembersihan data cepat
  • Daftar hasil dibatasi secara lembut untuk menghindari pembekuan UI saat mencocokkan teks besar

🔧 Cara Menggunakan Penguji Regex for regex-tester

1

1. Tempel atau Ketik Teks Uji Anda

Tambahkan teks yang ingin Anda telusuri: log, cuplikan, fragmen CSV, HTML, JSON, apa pun yang berupa teks biasa.

2

2. Tulis Pola Regex Anda

Masukkan ekspresi reguler **tanpa garis miring pembungkus**. Contoh: <code>\b\w+@\w+\.\w+</code> untuk pola mirip email dasar, atau <code>(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})</code> dengan grup bernama.

3

3. Atur Flag (g, i, m, s, u, y)

Aktifkan flag seperti <code>g</code> (global), <code>i</code> (tidak peka huruf) atau <code>m</code> (multibaris). Di balik layar, penguji membangun <code>new RegExp(pattern, flags)</code> persis seperti yang dilakukan JavaScript.

4

4. Periksa Kecocokan & Grup

Tinjau setiap kecocokan dengan indeksnya, indeks akhir opsional, dan grup tangkapan. Grup bernama muncul sebagai peta mirip JSON sehingga Anda dapat menyalinnya ke fixture tes, parser, atau dokumentasi.

5

5. Salin Ringkasan

Gunakan ringkasan teks sebagai laporan cepat: ini mencantumkan kecocokan dengan indeks dan grup, siap untuk ditempel ke tiket, komentar tinjauan kode, atau lembar contekan.

Detail Sintaks & Mesin Regex

Kelas Karakter & Dasar

Blok bangunan inti yang didukung oleh mesin RegExp JavaScript.

PolaArtiContoh
.Karakter apa pun kecuali jeda baris (kecuali flag <code>s</code>)<code>a.c</code> → cocok dengan <code>abc</code>
\d, \w, \sDigit, karakter kata, spasi<code>\d+</code> → <code>123</code>
\D, \W, \SVersi negasi dari yang di atas<code>\S+</code> → rangkaian non-spasi
[abc]Set karakter<code>[aeiou]</code> → satu vokal
[^abc]Set negasi<code>[^0-9]</code> → non-digit
^, $Awal dan akhir input (atau baris dengan <code>m</code>)<code>^Hello</code>, <code>!$</code>

Kuantifier

Pengulangan token sebelumnya, dengan perilaku serakah dan malas.

PolaMaknaContoh
?0 atau 1 kali<code>colou?r</code> → cocok dengan <code>color</code> dan <code>colour</code>
*0 atau lebih<code>a*b</code> → <code>b</code>, <code>aaab</code>
+1 atau lebih<code>\d+</code> → <code>1</code>, <code>123</code>
{n}Tepat n<code>a{3}</code> → <code>aaa</code>
{n,}Minimal n<code>\d{3,}</code> → <code>123</code>, <code>1234</code>
{n,m}Antara n dan m<code>a{2,4}</code> → <code>aa</code>, <code>aaa</code>, <code>aaaa</code>

Grup, Lookaround & Tangkapan Bernama

Fitur lebih lanjut yang disediakan oleh mesin JavaScript modern.

FiturSintaksisContoh
Grup penangkapan(...)<code>(\d{3})-(\d{2})</code> → area + suffix
Grup non-penangkapan(?:...)<code>(?:https?|ftp)://</code>
Referensi balik\1, \2, ...<code>(\w)\1</code> → <code>aa</code>, <code>bb</code>
Pandangan ke depan(?=...), (?!...)<code>\w+(?=! )</code> → kata sebelum <code>! </code>
Pandangan ke belakang*(?<=...), (?<!...)<code>(?<=#)\w+</code> → teks setelah <code>#</code> (*di mesin modern)
Grup bernama(?<name>...)<code>(?<year>\d{4})</code> → <code>groups.year</code> dalam hasil

Bendera (Opsi)

Bendera penguji langsung sesuai dengan bendera RegExp JavaScript.

BenderaNamaEfek
gGlobalTemukan semua kecocokan, bukan hanya yang pertama
iAbaikan huruf besar/kecilPencocokan tanpa memperhatikan huruf besar/kecil
mMultibaris<code>^</code> dan <code>$</code> cocok dengan batas baris
sDotAll<code>.</code> juga cocok dengan jeda baris
uUnicodeMengaktifkan mode Unicode dan pelolosan properti di mesin modern
yLengketCocok hanya pada indeks saat ini (digunakan dengan <code>lastIndex</code>)

Kinerja & Keamanan

Mesin JavaScript yang mendasarinya mengeksekusi regex secara sinkron. Untuk menjaga UI tetap responsif, penguji membatasi jumlah kecocokan yang dikumpulkan (misalnya, 500 temuan pertama dalam mode global). Ini membantu menghindari membanjiri UI, tetapi tidak menggantikan audit kinerja penuh untuk pola yang kompleks atau kritis.

Alat Regex Baris Perintah

Setelah pola Anda berfungsi di sini, Anda dapat menggunakan kembali regex yang sama atau serupa di terminal, skrip, atau pekerjaan CI Anda:

Linux / macOS

Pencarian dengan grep (regex diperluas)

grep -E 'pattern' file.txt

Temukan baris yang cocok dengan pola tertentu

Cari & ganti dengan sed

sed -E 's/pattern/replacement/g' input.txt > output.txt

Substitusi batch dalam file teks

Windows / PowerShell

Pencarian regex PowerShell

Select-String -Pattern '\d{3}-\d{2}-\d{4}' -Path logs.txt

Temukan pola SSN gaya AS dalam file log (contoh)

Penggantian regex PowerShell

(Get-Content input.txt) -replace 'old', 'new' | Set-Content output.txt

Penggantian sederhana berbasis regex

Aplikasi Regex Praktis

Pengembangan Web & Frontend

  • Validasi email, nama pengguna, slug, atau ID kustom dalam formulir
  • Ekstrak parameter rute dari URL atau jalur
  • Buat prototipe pola dengan cepat untuk validasi sisi klien
// Validasi dasar seperti email
/^[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}$/i.test(email);
// Parameter rute: /post/123
const match = pathname.match(/^\/post\/(\d+)/);

Log, Data & Backend

  • Parsing stempel waktu dan level dari baris log
  • Normalisasi spasi putih dan bersihkan teks yang berantakan
  • Ekstrak ID, email, atau referensi dari konten tidak terstruktur
// Runtuhkan spasi putih yang berulang
const normalized = text.replace(/\s+/g, ' ').trim();
// Pencocok baris log sederhana
const m = line.match(/\[(?<date>\d{4}-\d{2}-\d{2})] (?<level>INFO|ERROR): (?<msg>.*)/);

Pembersihan Data & Skrip Cepat

  • Hapus tag atau atribut HTML yang tidak diinginkan sebelum parsing
  • Ambil semua URL, email, atau ID dari gumpalan teks panjang
  • Siapkan bidang dataset untuk diimpor ke sistem lain

❓ Frequently Asked Questions

Mengapa regex saya tidak cocok dengan apa pun?

Kesalahan umum: 1) Karakter khusus tidak di-escape (seperti ., ?, +), 2) Lupa menambahkan flag g saat mengharapkan banyak kecocokan, 3) Kehilangan anchor (^, $) atau batas kata (\b), 4) Menggunakan fitur yang belum didukung mesin JavaScript Anda (seperti beberapa lookbehind). Coba sederhanakan pola dan tambahkan kembali bagian-bagiannya secara bertahap.

⏱️Apa arti waktu eksekusi (ms)?

Setiap proses diukur waktunya menggunakan performance.now(). Nilai tersebut adalah pengukuran kasar satu kali proses tentang berapa lama regex dieksekusi pada input saat ini. Ini berguna untuk mendeteksi pola yang jelas-jelas mahal, tetapi bukan tolok ukur penuh atau jaminan kinerja produksi.

🔍Apa perbedaan antara mode kecocokan pertama dan global?

Tanpa flag g, JavaScript hanya mengembalikan kecocokan **pertama** (jika ada). Dengan g, penguji menggunakan input.matchAll() untuk mengumpulkan **semua** kecocokan (dibatasi hingga maksimum yang aman), termasuk indeks dan grup tangkapan. Gunakan mode global setiap kali Anda peduli dengan banyak kemunculan.

🌍Apakah ini mendukung Unicode dan escape <code>\p{...}</code>?

Ya, ketika mesin JavaScript Anda mendukungnya. Aktifkan flag u untuk masuk ke mode Unicode, yang membuka hal-hal seperti \p{Letter} atau \p{Script=Greek} di browser modern dan versi Node.js terbaru.

⚠️Dapatkah ini mendeteksi backtracking katastrofik?

Penguji dapat memberikan petunjuk tentang pola yang lambat melalui waktu eksekusi, tetapi tidak dapat sepenuhnya mencegah backtracking katastrofik: mesin dasarnya masih berjalan secara sinkron. Gunakan alat ini sebagai sistem peringatan dini, lalu lakukan tolok ukur dan tinjau pola kompleks dengan hati-hati di basis kode Anda sendiri.

Pro Tips

Best Practice

Bangun regex Anda dalam bagian-bagian kecil. Mulai dengan sesuatu yang sederhana yang cocok, lalu tambahkan anchor, grup, dan quantifier langkah demi langkah.

Best Practice

Gunakan grup tangkapan bernama (<code>(?<name>...)</code>) kapan pun memungkinkan. Mereka membuat kecocokan Anda terdokumentasi sendiri dan jauh lebih mudah dibaca selama tinjauan kode.

Best Practice

Hati-hati dengan <code>.*</code> dan quantifier bersarang. Mereka dapat menyebabkan backtracking berat pada input besar. Buat pola lebih spesifik atau batasi pengulangan dengan <code>{n,m}</code>.

Best Practice

Saat debugging, sementara hapus flag <code>g</code> dan fokus pada kecocokan pertama untuk menyederhanakan model mental.

Additional Resources

Other Tools