Regex Tester

Masukkan pola, pilih flag, lalu tempel teks uji: regex tester ini menampilkan setiap kecocokan beserta indeksnya, isi grup tangkapan bernomor dan bernama, serta menjelaskan setiap bagian pola dalam bahasa Indonesia. Pencocokan memakai mesin JavaScript browser Anda (ECMAScript).

Masukkan tanpa garis miring pembuka dan penutup, misalnya \d+ bukan /\d+/. Pola ikut tersimpan di tautan dan bisa dibagikan – teks uji tidak.
Input Anda hanya disimpan di browser ini.

Teks yang akan dicari. Teks tetap di browser Anda dan tidak dimasukkan ke tautan.

Teks Anda tetap di browser Anda – tidak dikirim, tidak disimpan, dan tidak ditambahkan ke bilah alamat.

Hasil

Hasil
2 kecocokan
Kecocokan
No.IndeksPanjangKecocokan
129102026-09-27
260102026-10-15
Grup per kecocokan
No.GrupNamaNilai
11jahr2026
12monat09
13tag27
21jahr2026
22monat10
23tag15
Penjelasan pola
TokenArti
(?<jahr>awal grup 1 bernama „jahr”
› \dsatu digit 0–9
› {4}item sebelumnya tepat 4 kali
)akhir grup
-teks literal „-”
(?<monat>awal grup 2 bernama „monat”
› \dsatu digit 0–9
› {2}item sebelumnya tepat 2 kali
)akhir grup
-teks literal „-”
(?<tag>awal grup 3 bernama „tag”
› \dsatu digit 0–9
› {2}item sebelumnya tepat 2 kali
)akhir grup
Sebagai literal JavaScript
/(?<jahr>\d{4})-(?<monat>\d{2})-(?<tag>\d{2})/g

Cara menghitung

Regex tester ini memakai ragam JavaScript dari ekspresi reguler sebagaimana didefinisikan standar ECMA-262 dan diterapkan oleh browser Anda. Pola yang berfungsi di sini akan berfungsi sama persis di String.prototype.match, matchAll, replace, dan RegExp.prototype.test – di Chrome, Firefox, Safari, dan Node.js.

Cara menguji regex

  1. Masukkan pola tanpa garis miring di awal dan akhir, misalnya \d+.
  2. Centang flag yang diperlukan (misalnya g untuk semua kecocokan, i untuk mengabaikan huruf besar/kecil).
  3. Tempel teks uji, lalu baca kecocokan, grup, dan penjelasan pola.

Contoh: Pola \d{4} dengan flag g menemukan 2 kecocokan dalam „Lahir 1990, pindah 2015”: 1990 pada posisi 6 dan 2015 pada posisi 19 (posisi dihitung dari 0).

Cara membuat regex

Susun pola dari bagian kecil: karakter biasa cocok dengan dirinya sendiri, \d berarti satu digit, [a-z] satu huruf kecil, + berarti „satu kali atau lebih”, dan tanda kurung membentuk grup. Contoh nomor ponsel Indonesia: ^(?:\+62|0)8\d{8,11}$ cocok dengan 081234567890 dan +6281234567890. Uji pola langkah demi langkah di sini dan lihat penjelasan tiap bagian di tabel.

Membaca hasil

Flag

g mencari semua kecocokan, bukan hanya yang pertama, i mengabaikan huruf besar/kecil, m membuat ^ dan $ bekerja per baris, s membuat titik cocok dengan baris baru. u memperlakukan emoji dan karakter lain di luar Basic Multilingual Plane sebagai satu karakter dan mengaktifkan properti Unicode seperti \p{L} (huruf apa pun, termasuk é). v adalah versi baru u dengan operasi himpunan seperti [\p{L}--[a-z]]; u dan v tidak bisa digabung. y („sticky”) hanya menemukan kecocokan yang berurutan tanpa celah.

Perlindungan dari loop tak berujung dan macet

Pola seperti a* atau \b bisa menghasilkan kecocokan kosong. Seperti JavaScript sendiri, tester lalu maju satu karakter (satu code point penuh dengan u/v), sehingga tidak terjadi loop tak berujung. Maksimal 1.000 kecocokan yang dicari.

Bahaya yang lebih besar adalah catastrophic backtracking (ReDoS): kuantifier bersarang seperti (a+)+$ mencoba jumlah kombinasi yang eksponensial pada teks yang tidak cocok – 30 karakter bisa membuat mesin sibuk bermenit-menit. Karena itu pencarian berjalan di thread latar terpisah dan dihentikan setelah 2 detik; halaman tetap responsif. Hindari pola seperti itu di kode Anda, terutama untuk input pengguna.

Perbedaan dengan ragam regex lain

PCRE (PHP), Python, Java, dan .NET berbeda dalam detail: JavaScript tidak punya kuantifier posesif (a++), grup atomik, atau jangkar \A dan \Z; \w hanya mencakup A–Z, a–z, 0–9, dan garis bawah – untuk huruf beraksen gunakan \p{L} dengan flag u.

Teks uji Anda tidak dikirim, tidak disimpan, dan tidak ditulis ke tautan – hanya pola dan flag.

Pertanyaan umum

Apa itu regex?

Regex (regular expression, ekspresi reguler) adalah cara menulis pola teks dengan simbol. Misalnya \d{5} berarti „lima digit” dan cocok dengan kode pos seperti 40115. Regex dipakai untuk mencari, mengganti, dan memvalidasi input.

Bagaimana cara menguji regular expression?

Ketik pola tanpa garis miring di kolom atas, centang flag yang diperlukan, lalu tempel teks Anda. Semua kecocokan langsung disorot di teks dan dicantumkan beserta indeksnya; di bawahnya terlihat apa yang ditangkap setiap grup.

Mengapa \w tidak cocok dengan huruf beraksen?

Di JavaScript, \w hanya berarti A–Z, a–z, 0–9, dan _. Untuk huruf dalam bahasa apa pun, gunakan \p{L} dengan flag u, misalnya [\p{L}\d_]+ untuk kata seperti „café”.

Apa beda greedy dan lazy?

Kuantifier greedy (*, +, {2,}) mengambil teks sebanyak mungkin, kuantifier lazy dengan tanda tanya di belakang (*?, +?) sesedikit mungkin. Pada „<b>x</b>”, <.+> cocok dengan seluruh teks, <.+?> hanya „<b>”.

Bagaimana cara memberi nama grup tangkapan?

Gunakan (?<name>…). Di kode Anda membacanya lewat match.groups.name, di string pengganti dengan $<name>, dan di dalam pola dengan backreference \k<name>.

Mengapa pencarian saya dihentikan?

Pencarian berjalan lebih dari 2 detik – biasanya karena catastrophic backtracking dengan kuantifier bersarang seperti (\w+)*. Sederhanakan pola: jangan menyarangkan kuantifier, buat alternatif tidak ambigu, dan beri jangkar ^ dan $.

Apakah hasilnya berlaku juga untuk PHP atau Python?

Untuk pola sederhana biasanya ya, tetapi yang dijamin hanya JavaScript. PHP (PCRE) dan Python mendukung sintaks tambahan seperti kuantifier posesif atau \A, dan Python secara tradisional menulis grup bernama sebagai (?P<name>…).

Sumber dan dasar hukum

Diperbarui:

Alat terkait