Regex Cheat Sheet — Regex

Regex Cheat Sheet Referensi lengkap semua syntax regex yang sudah kamu pelajari, siap dipakai sebagai rujukan cepat. Karakter Dasar Pattern Cocok Dengan…

Regex Cheat Sheet

Referensi lengkap semua syntax regex yang sudah kamu pelajari, siap dipakai sebagai rujukan cepat.

Karakter Dasar

Pattern Cocok Dengan
. Karakter apapun (kecuali newline)
\d Digit [0-9]
\D Bukan digit [^0-9]
\w Word char [a-zA-Z0-9_]
\W Bukan word char
\s Whitespace (spasi, tab, newline)
\S Bukan whitespace
\b Word boundary
\B Bukan word boundary

Quantifier

Pattern Arti Lazy
* 0 atau lebih *?
+ 1 atau lebih +?
? 0 atau 1 ??
{n} Tepat n kali -
{n,} Minimal n {n,}?
{n,m} n sampai m {n,m}?

Anchor

Pattern Posisi
^ Awal string (atau baris dengan flag m)
$ Akhir string (atau baris dengan flag m)
\b Word boundary

Groups & Lookaround

Pattern Arti
(abc) Capturing group
(?:abc) Non-capturing group
(?<nama>abc) Named group
\1 Backreference ke group 1
(?=abc) Positive lookahead
(?!abc) Negative lookahead
(?<=abc) Positive lookbehind
(?<!abc) Negative lookbehind

Flags

Flag Arti
g Global — semua kecocokan
i Case-insensitive
m Multiline — ^/$ per baris
s Dotall — . cocok dengan newline
u Unicode
y Sticky — mulai dari lastIndex

Method JavaScript

Method Return Kegunaan
regex.test(str) Boolean Cek ada/tidak
regex.exec(str) Array/null Detail satu kecocokan
str.match(regex) Array/null Cari kecocokan
str.matchAll(regex) Iterator Semua kecocokan + detail
str.replace(regex, rep) String Ganti kecocokan
str.replaceAll(regex, rep) String Ganti semua
str.search(regex) Number Posisi pertama (-1 jika tidak ada)
str.split(regex) Array Pecah string

Pattern Umum yang Sering Dipakai

// Email (sederhana)
/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/

// URL
/^https?:\/\/[\w.-]+\.[a-zA-Z]{2,}/

// Nomor HP Indonesia
/^(\+62|0)8\d{1,2}[- ]?\d{4}[- ]?\d{2,4}$/

// IP Address (sederhana)
/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/

// Hex Color
/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/

// Password kuat (8+ char, huruf besar, angka, simbol)
/^(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*]).{8,}$/

// Hapus whitespace berlebih
str.replace(/\s+/g, " ").trim()

// camelCase → kebab-case
str.replace(/[A-Z]/g, m => "-" + m.toLowerCase())

// Extract angka dari string
str.match(/\d+/g)

// Validasi hanya huruf dan spasi
/^[a-zA-Z\s]+$/

// Format ribuan (1234567 → 1.234.567)
str.replace(/\B(?=(\d{3})+(?!\d))/g, ".")

Tips Menulis Regex

  1. Mulai sederhana — buat pattern basic dulu, lalu tambahkan kompleksitas
  2. Test dengan berbagai input — termasuk edge case seperti string kosong
  3. Gunakan tool online — regex101.com untuk visualisasi dan debugging
  4. Jangan over-engineer — regex sederhana yang benar lebih baik dari regex kompleks yang rapuh
  5. Dokumentasikan — tambahkan komentar untuk regex yang kompleks
  6. Hati-hati backtracking — hindari pattern seperti (a+)+ yang bisa sangat lambat
// Contoh regex yang didokumentasikan dengan baik:
const dateRegex = new RegExp(
  "^" +
  "(\\d{4})" +   // Tahun (4 digit)
  "-" +
  "(\\d{2})" +   // Bulan (2 digit)
  "-" +
  "(\\d{2})" +   // Hari (2 digit)
  "
quot; );

🎭 Analogi sehari-hari: Cheat sheet = peta wilayah saat eksplorasi. Bukan untuk hafal, tapi untuk referensi cepat saat butuh. Pelajaran-pelajaran sebelum ini = pengalaman lapangan. Cheat sheet ini = peta yang bisa dibuka kalau lupa "huruf wilayah mana yang aku cari?".

💡 Yang paling sering dipake (80% kasus):

Sisa fitur (lookbehind, named group, backref) untuk advanced cases.

⚠️ Tips menjaga regex maintainable:

🎯 Workflow regex production:

  1. Define requirements — apa yang dimatch, apa yang ditolak
  2. Iterate di regex101.com — flavor sesuai target language
  3. Test positive + negative cases — jangan cuma yang harus match
  4. Bench performance dengan input panjang — cek ReDoS
  5. Add to test suite — jangan tunggu prod yang temukan bug
  6. Document — kasih comment WHY, bukan WHAT

🧪 Tebakan cepat: Kapan pakai regex vs string method?

Aturan: String method untuk simple, regex untuk pattern.

TL;DR: Cheat sheet = referensi cepat semua syntax regex yang dipelajari. Komponen utama (80%): \d \w \s, *+?{}, ^$, (), [], flags igm. Lookbehind, backref = advanced. Selalu test positive + negative cases. Pakai string method untuk simple ops, regex untuk pattern.