Alat

Regex Tester Online Gratis

Uji dan debug regular expression JavaScript di browser Anda. Lihat hasil yang disorot secara langsung, periksa capture group, dan pratinjau penggantian. Tidak ada yang pernah dikirim ke server.

Flag
Pola Cepat

Hasil Pencocokan

Semua pencocokan terjadi secara lokal di browser Anda. Pola dan teks Anda tidak pernah diunggah, disimpan, atau dicatat.

Apa itu Regular Expression?

Regular expression (regex) adalah rangkaian karakter yang mendefinisikan pola pencarian. Alih-alih mencari satu string tetap, regex menggambarkan bentuk teks yang Anda inginkan — digit, kata, alamat email, tanggal, dan lainnya. Ini menjadikan pencocokan pola salah satu alat paling ampuh bagi developer, analis data, dan sysadmin, yang mengandalkannya setiap hari untuk memvalidasi input, mencari melalui log, dan mengubah teks dengan cepat dan andal.

Penjelasan Flag Regex JavaScript

g global — temukan semua kecocokan dalam string, bukan hanya yang pertama.
i case-insensitive — huruf cocok terlepas dari huruf besar atau kecil.
m multiline — anchor ^ dan $ cocok dengan awal dan akhir setiap baris, bukan hanya seluruh string.
s dotAll — titik . juga cocok dengan karakter newline.
u unicode — mengaktifkan pencocokan Unicode penuh, termasuk code point di atas U+FFFF.

Referensi Pola Regex Umum

Pola Regex Kecocokan
Email /[^\s@]+@[^\s@]+\.[^\s@]+/ hello@charcount.app
URL /https?:\/\/[^\s]+/ https://charcount.app
IPv4 /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/ 192.168.0.1
Tanggal (YYYY-MM-DD) /\d{4}-\d{2}-\d{2}/ 2026-06-30
Warna Hex /#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\b/ #4338ca
UUID v4 /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab]…/i 9f1c…5b6c

Capture Group Regex

Tanda kurung memungkinkan Anda menangkap bagian dari kecocokan sehingga Anda bisa mengekstrak atau menggunakannya kembali. Ada tiga jenis:

  • ( ) — capturing group: menyimpan apa yang dicocokkan, dapat diakses sebagai $1, $2, … dalam penggantian.
  • (?: ) — non-capturing group: mengelompokkan pola untuk alternasi atau quantifier tanpa menyimpannya.
  • (?<name> ) — named group: menangkap dengan nama yang mudah dibaca, dapat diakses sebagai groups.name.

Contohnya, mengurai tanggal dengan tiga grup: (\d{4})-(\d{2})-(\d{2})

Pertanyaan yang Sering Diajukan

.* bersifat greedy: mencocokkan sebanyak mungkin teks, lalu backtrack jika diperlukan. .*? bersifat lazy (non-greedy): mencocokkan sesedikit mungkin dan hanya berkembang saat dipaksa. Misalnya, terhadap teks "<a><b>", pola <.*> mencocokkan seluruh "<a><b>", sementara <.*?> hanya mencocokkan "<a>". Gunakan versi lazy ketika Anda menginginkan kecocokan sesingkat mungkin, seperti mengurai tag HTML individual.

Karakter seperti . ( ) [ ] { } + * ? ^ $ | \ memiliki arti khusus dalam regex, jadi untuk mencocokkannya secara literal Anda perlu meng-escape dengan backslash. Tulis \. untuk titik literal, \( untuk tanda kurung buka literal, dan \\ untuk backslash literal. Di dalam character class, misalnya [.], sebagian besar karakter ini kehilangan arti khususnya dan tidak perlu di-escape.

Sebagian besar penguji online secara default menggunakan mesin PCRE, sementara alat ini dan browser Anda menggunakan mesin JavaScript (ECMAScript), yang tidak memiliki beberapa fitur. JavaScript tidak mendukung lookbehind di mesin lama, possessive quantifier, rekursi, atau inline flag seperti (?i). Pastikan penguji Anda diatur ke varian JavaScript agar perilakunya sesuai dengan yang akan dilakukan kode Anda.

Flag g (global) membuat regex menemukan setiap kecocokan dalam string, bukan berhenti di kecocokan pertama. Anda memerlukannya saat menggunakan metode seperti matchAll() atau replaceAll(), atau saat mengganti semua kemunculan dengan replace(). Tanpa g, metode seperti replace() hanya mengubah kecocokan pertama. Perhatikan bahwa regex global menyimpan status lastIndex, jadi gunakan kembali dengan hati-hati saat memanggil exec() dalam loop.