Mengapa Regex Layak Dipelajari
Ekspresi reguler yang dibuat dengan baik dapat menggantikan 50 baris kode penguraian string manual. Ini berjalan dalam mikrodetik. Ia bekerja di hampir semua bahasa pemrograman. Dan setelah Anda memahami sintaksisnya, Anda dapat menulis pola yang memerlukan waktu berjam-jam untuk diterapkan dengan logika kondisional.
Penghalangnya bukanlah konsepnya, melainkan notasinya. Regex menggunakan sintaksis yang padat dan penuh simbol yang sekilas tampak seperti omong kosong. Setelah Anda belajar membacanya, Anda akan melihat pola dalam kode, data, dan teks yang tidak dapat Anda lihat sebelumnya.
Referensi Cepat Pola Penting
| Pola | Cocok | Contoh |
|---|---|---|
\D | Angka apa saja 0–9 | \d{4} → 2025 |
\w | Huruf, angka, atau garis bawah | \w+→ "halo_dunia" |
\S | Spasi apa pun | \s+→ satu spasi atau lebih |
^ / $ | Tali awal/akhir | ^\d{5}$→ zip persis 5 digit |
[abc] | Salah satu dari: a, b, atau c | [aeiou]→ vokal apa saja |
[^abc] | Apa pun kecuali a, b, c | [^\d]→ bukan angka |
? | 0 atau 1 dari sebelumnya | warna→ warna ATAU warna |
+ | 1 atau lebih | \d+→ satu atau lebih digit |
* | 0 atau lebih | \D*→ nol atau lebih digit |
{n,m} | Antara n dan m kali | \d{3,5}→ 3 hingga 5 digit |
Pola yang Layak Ditandai
- E-mail:
/^[\w.+-]+@[\w-]+\.[a-z]{2,}$/i - URL Ekstraksi:
/https?:\/\/[^\s"'<>]+/g - Hapus spasi tambahan:
/\s+/g→ ganti dengan spasi tunggal - Ekstrak hashtag:
/#[\w]+/g - Cocok untuk seluruh kata saja:
/\bkata\b/
Gtandai untuk menemukan semua kecocokan (bukan hanya yang pertama),Sayauntuk pencocokan peka huruf besar-kecil, danMuntuk membuat^Dan$terjadi batas garis, bukan batas string. Sebagian besar pola regex dunia setidaknya diperlukanGatauSaya.Apa itu "kemunduran yang membawa bencana"?
Pola seperti itu(a+)+diterapkan pada string panjang yang tidak cocok menyebabkan waktu pemrosesan eksponensial — mesin regex Anda macet saat mencoba lebih banyak kombinasi secara eksponensial. Hindari bilangan bersarang pada pola yang tumpang tindih. Polanya(a+)+bpada "aaaaaaaaaaaaaaaaac" server akan hang.
Apakah regex JavaScript berfungsi sama dengan Python?
Sebagian besar ya, dengan perbedaan nama grup (penggunaan JS(?<nama>), Python menggunakan(?P<nama>)), beberapa kemampuan melihat ke depan/ke belakang, dan notasi kelas karakter. Penguji ini menggunakan mesin JavaScript — uji dalam bahasa target Anda jika perilakunya berbeda.