Editor
Menunggu input atau eksekusi regex…
Tindakan
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. 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. 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. 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. 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. 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.
| Pola | Arti | Contoh |
|---|---|---|
| . | Karakter apa pun kecuali jeda baris (kecuali flag <code>s</code>) | <code>a.c</code> → cocok dengan <code>abc</code> |
| \d, \w, \s | Digit, karakter kata, spasi | <code>\d+</code> → <code>123</code> |
| \D, \W, \S | Versi 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.
| Pola | Makna | Contoh |
|---|---|---|
| ? | 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.
| Fitur | Sintaksis | Contoh |
|---|---|---|
| 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.
| Bendera | Nama | Efek |
|---|---|---|
| g | Global | Temukan semua kecocokan, bukan hanya yang pertama |
| i | Abaikan huruf besar/kecil | Pencocokan tanpa memperhatikan huruf besar/kecil |
| m | Multibaris | <code>^</code> dan <code>$</code> cocok dengan batas baris |
| s | DotAll | <code>.</code> juga cocok dengan jeda baris |
| u | Unicode | Mengaktifkan mode Unicode dan pelolosan properti di mesin modern |
| y | Lengket | Cocok 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.txtTemukan baris yang cocok dengan pola tertentu
Cari & ganti dengan sed
sed -E 's/pattern/replacement/g' input.txt > output.txtSubstitusi batch dalam file teks
Windows / PowerShell
Pencarian regex PowerShell
Select-String -Pattern '\d{3}-\d{2}-\d{4}' -Path logs.txtTemukan pola SSN gaya AS dalam file log (contoh)
Penggantian regex PowerShell
(Get-Content input.txt) -replace 'old', 'new' | Set-Content output.txtPenggantian 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?
., ?, +), 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)?
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?
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>?
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?
Pro Tips
Bangun regex Anda dalam bagian-bagian kecil. Mulai dengan sesuatu yang sederhana yang cocok, lalu tambahkan anchor, grup, dan quantifier langkah demi langkah.
Gunakan grup tangkapan bernama (<code>(?<name>...)</code>) kapan pun memungkinkan. Mereka membuat kecocokan Anda terdokumentasi sendiri dan jauh lebih mudah dibaca selama tinjauan kode.
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>.
Saat debugging, sementara hapus flag <code>g</code> dan fokus pada kecocokan pertama untuk menyederhanakan model mental.
Additional Resources
Other Tools
- Pemerindah CSS
- Pemerindah HTML
- Pemerindah Javascript
- Pemerindah PHP
- Pemilih Warna
- Ekstraktor Sprite
- Dekoder Base64
- Encoder Base64
- Pemformat Csharp
- Pemformat CSV
- Dockerfile Formatter
- Pemformat Elm
- Pemformat ENV
- Pemformat Go
- Pemformat GraphQL
- Pemformat HCL
- Pemformat INI
- Pemformat JSON
- Pemformat Latex
- Pemformat Markdown
- Pemformat ObjectiveC
- Php Formatter
- Pemformat Proto
- Pemformat Python
- Pemformat Ruby
- Pemformat Rust
- Pemformat Scala
- Pemformat Skrip Shell
- Pemformat SQL
- Pemformat SVG
- Pemformat Swift
- Pemformat TOML
- Typescript Formatter
- Pemformat XML
- Pemformat YAML
- Pemformat Yarn
- Pengecil CSS
- Html Minifier
- Javascript Minifier
- Pengecil JSON
- Pengecil XML
- Penampil Header HTTP
- PDF Ke Teks
- Pemeriksa Peringkat SERP
- Pencarian Whois