Apa itu Regex? — Regex

Apa itu Regular Expression? Regular Expression (disingkat regex atau regexp) adalah pola teks yang digunakan untuk mencocokkan, mencari, dan memanipulasi…

Apa itu Regular Expression?

Regular Expression (disingkat regex atau regexp) adalah pola teks yang digunakan untuk mencocokkan, mencari, dan memanipulasi string. Bayangkan regex sebagai "bahasa pencarian super" — jauh lebih powerful dari Ctrl+F biasa.

Mengapa Belajar Regex?

Regex dipakai di hampir semua bahasa pemrograman dan tool developer:

Regex Pertamamu

Regex paling sederhana adalah teks biasa. Pattern kucing akan cocok dengan kata "kucing" di dalam string:

const teks = "Saya punya kucing dan anjing";
const hasil = teks.match(/kucing/);
console.log(hasil[0]); // "kucing"

Perhatikan bahwa regex di JavaScript ditulis di antara dua garis miring /pattern/. Ini disebut regex literal.

Cara Kerja Regex

Regex engine membaca pattern dari kiri ke kanan dan mencocokkan karakter per karakter:

Teks:    S a y a   p u n y a   k u c i n g
Pattern:                        k u c i n g  ✓ cocok!

Engine akan "menggeser" pattern ke setiap posisi dalam teks sampai menemukan kecocokan (atau sampai akhir teks jika tidak ada).

Flag / Modifier

Setelah regex literal, kamu bisa menambahkan flag untuk mengubah perilaku pencarian:

const teks = "Kucing besar dan kucing kecil";

// Tanpa flag — hanya menemukan "kucing" pertama (huruf kecil)
teks.match(/kucing/);    // ["kucing"]

// Flag g (global) — temukan SEMUA kecocokan
teks.match(/kucing/g);   // ["kucing"]

// Flag i (case-insensitive) — abaikan besar/kecil huruf
teks.match(/kucing/gi);  // ["Kucing", "kucing"]

Flag yang paling sering dipakai:

Contoh Praktis

// Cek apakah string mengandung angka
const punyaAngka = /[0-9]/.test("harga100");
console.log(punyaAngka); // true

// Temukan semua kata yang diawali huruf besar
const teks = "Budi pergi ke Jakarta bersama Siti";
const nama = teks.match(/[A-Z][a-z]+/g);
console.log(nama); // ["Budi", "Jakarta", "Siti"]

Di pelajaran berikutnya, kita akan mempelajari berbagai karakter spesial yang membuat regex begitu powerful.

🎭 Analogi sehari-hari: Regex = mesin pencari pola di mesin tik tua. Bukan cari "Budi" persis (Ctrl+F), tapi "siapa pun yang namanya 4 huruf, dimulai huruf B, akhir huruf vokal" — cari pola, bukan exact text. Polisi punya sketsa wajah (pattern), cari orang yang fit sketsa di kerumunan. Lebih powerful tapi sketsa harus dirancang teliti.

💡 Mengapa regex sering ditakuti pemula? Sintaks padat = "noise to signal" tinggi. ^[a-zA-Z][\w.-]*@\w+\.\w{2,}$ = email validator dasar. Tiap karakter punya makna khusus. Triknya: pelajari komponen kecil dulu, baru gabungin. Jangan langsung baca regex panjang.

⚠️ Jebakan klasik:

🎯 Kapan pakai regex:

Kapan JANGAN regex:

TL;DR: Regex = pattern matching language untuk text. Powerful + ubiquitous (tiap bahasa support). Belajar komponen dulu, gabung kemudian. Jangan parse structured data (HTML/JSON) dengan regex. Awas ReDoS untuk pattern user-input.

Yang akan kamu pelajari