🌐 ID

🔣 Regex Tester

Uji pola regular expression secara real-time dan lihat hasil kecocokan. Menyediakan pengaturan flag, penangkapan grup, dan pustaka pola umum.

Pola Umum

PANDUAN

Pelajari lebih lanjut

01

1. Dasar-Dasar Regular Expression

Regular expression (Regex) adalah alat yang sangat kuat untuk mendefinisikan, mencari, mengekstrak, dan mengganti pola string. Cocokkan secara literal (\d untuk digit, \w untuk karakter kata) atau gunakan karakter khusus untuk pola yang kompleks. Contoh: ^[a-z]+$ berarti string yang hanya berisi huruf kecil. ^ adalah awal, $ adalah akhir, [a-z] berarti a sampai z, + berarti satu atau lebih. Didukung di hampir semua bahasa pemrograman dan editor teks, penting untuk validasi input, parsing data, dan penggantian teks.

02

2. Kumpulan Pola Umum

Pola regex yang sering digunakan dalam praktik: Email: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$, Telepon (AS): ^(\+1)?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$, URL: ^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b, Tanggal (YYYY-MM-DD): ^\d{4}-\d{2}-\d{2}$, Kata sandi (min 8 karakter, huruf besar+kecil+angka+simbol): ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$. Gunakan pola ini sebagai dasar dan sesuaikan untuk proyek Anda.

03

3. Penjelasan Flag Regex

Flag regex mengontrol perilaku pencarian. g(global): menemukan semua kecocokan, bukan hanya yang pertama. i(ignoreCase): pencocokan tanpa peka huruf besar/kecil (/hello/i cocok dengan Hello, HELLO). m(multiline): ^ dan $ cocok dengan awal/akhir setiap baris. s(dotAll): . cocok dengan karakter baris baru (\n). u(unicode): menangani Unicode penuh dengan benar (emoji, dll.). y(sticky): memulai pencarian hanya pada posisi lastIndex. Contoh: /hello/gi menemukan semua hello tanpa peka huruf besar/kecil.

04

4. Grup Tangkapan dan Backreference

Tanda kurung () membuat grup yang menangkap bagian yang cocok untuk digunakan nanti. Contoh: /(\d{4})-(\d{2})-(\d{2})/ di mana $1 adalah tahun, $2 adalah bulan, $3 adalah hari. Array hasil match() JavaScript mencakup grup tangkapan. Backreference \1, \2 mencocokkan teks yang sama seperti grup sebelumnya. Contoh: /(\w+)\s+\1/ cocok dengan "hello hello". Grup non-capturing (?:) mengelompokkan tanpa menangkap untuk performa yang lebih baik.

05

5. Lookahead dan Lookbehind

Lookahead dan lookbehind memeriksa pola sebelum/sesudah tanpa menyertakannya dalam kecocokan. Positive lookahead (?=): /\d(?=px)/ mencocokkan digit sebelum px ("100" pada "100px"). Negative lookahead (?!): /\d(?!px)/ mencocokkan digit yang tidak diikuti px. Positive lookbehind (?<=): /(?<=\$)\d+/ mencocokkan digit setelah $ ("100" pada "$100"). Negative lookbehind (?<!): kebalikannya. Sering digunakan dalam validasi kata sandi untuk memeriksa keberadaan karakter tertentu.

06

6. Optimasi Performa Regex

Regex yang kompleks dapat menimbulkan masalah performa. Buat se-spesifik mungkin ([a-z]+ daripada .*). Ganti grup tangkapan yang tidak perlu dengan grup non-capturing (?:). Gunakan quantifier malas (*?, +?) daripada greedy (*,+) untuk mengurangi backtracking. Untuk teks besar, metode string (indexOf, startsWith) bisa lebih cepat daripada regex. Pre-compile regex untuk dipakai ulang (jangan terus-menerus membuat RegExp baru). Waspadai serangan ReDoS (Regular Expression Denial of Service) - jangan pernah memakai input pengguna langsung sebagai pola regex.

Pertanyaan umum

Bisakah saya menggabungkan beberapa flag regex?
Ya, Anda bisa mengaktifkan beberapa flag sekaligus — misalnya, g dan i bersama-sama menemukan semua kecocokan sambil mengabaikan huruf besar/kecil. Cukup centang opsi yang Anda butuhkan dan alat akan menerapkannya sekaligus.
Bisakah saya memakai pola bawaan apa adanya?
Pola seperti email, telepon, URL, dan tanggal bekerja langsung untuk sebagian besar kasus, tetapi sebaiknya disesuaikan dengan kebutuhan spesifik proyek Anda (misalnya format nomor telepon per negara).
Apa yang harus saya periksa jika tidak ada kecocokan?
Pertama periksa typo pada pola, escape yang hilang (\. bukan .), dan pengaturan flag. "Tidak ada kecocokan ditemukan" berarti regex-nya valid tetapi tidak cocok dengan string uji Anda.
Bagaimana grup tangkapan ditampilkan di hasil?
Alat ini tidak menampilkan nilai grup yang ditangkap secara terpisah. Sebagai gantinya, alat menyorot setiap kecocokan dalam string uji dan menampilkan total jumlah kecocokan. Anda tetap bisa menulis grup tangkapan di pola Anda, tetapi untuk memeriksa apa yang benar-benar ditangkap oleh $1, $2, dan seterusnya, Anda perlu mengeceknya sendiri (misalnya melalui browser console).
Mengapa pola regex yang kompleks berjalan lambat?
Ini sering disebabkan oleh quantifier greedy atau grup bertingkat yang memicu backtracking berlebihan. Menulis pola yang lebih spesifik dan menggunakan quantifier malas (*?, +?) biasanya membantu.