Lompati ke konten utama
eLearner.app

Kursus interaktif

Kursus Regex

Pelajari ekspresi reguler dari awal, dalam bahasa Inggris, dengan mesin yang menjalankan setiap pola langsung di browser dan menunjukkan kecocokan secara real-time.

01 · Modul 1 — Dasar-dasar

4 pelajaran

Dasar-dasar regex: pola literal, kelas karakter dasar, karakter pengganti `.` dan pelolosan karakter meta.

  1. 1.1Pola literalKarakter normal, sensitivitas huruf besar-kecil, dan proses pertama: kecocokan dan indeks.~8 min
  2. 1.2Kelas dasar: \d \w \sKelas yang telah ditentukan sebelumnya untuk angka, karakter kata, dan spasi (dan versi yang dinegasikannya).~10 min
  3. 1.3Karakter pengganti: titik `.`Karakter `.` cocok dengan hampir semua hal: apa yang termasuk di dalamnya, apa yang dikecualikan, dan mengapa tanda `s` penting.~8 min
  4. 1.4Melarikan diri dari meta-karakter12 karakter meta yang perlu di-escape dengan `\`, saat Anda memerlukan garis miring terbalik ganda dan alasannya.~10 min

02 · Modul 2 — Pengukur

4 pelajaran

Berapa banyak yang harus diulang: `*`, `+`, `?`, interval `{n,m}` dan perbedaan antara serakah dan malas.

  1. 2.1`*`, `+`, `?`Nol atau lebih, satu atau lebih, opsional: tiga bilangan dasar.~10 min
  2. 2.2Besaran pastinya `{n,m}`Tepatnya `n`, dari `n` hingga `m`, setidaknya `n`: pembilang numerik.~10 min
  3. 2.3Serakah vs malasSecara default, quantifier bersifat serakah (`.*`); tambahkan `?` untuk versi malas (`.*?`).~10 min
  4. 2.4Mundur: gambaran umumApa yang dilakukan mesin ketika pengukur serakah gagal, dan mengapa biayanya bisa mahal.~12 min

03 · Modul 3 — Jangkar dan batasan

4 pelajaran

Posisi, bukan karakter: melekat pada awal/akhir string, pada batas kata, dan pada awal/akhir setiap baris dengan tanda `m`.

  1. 3.1Awal dan akhir: `^` dan `$`Menambatkan pola ke karakter pertama atau terakhir dari string.~8 min
  2. 3.2Batasan kata: `\b` `\B`Transisi antara karakter kata dan non-kata; menemukan seluruh kata.~10 min
  3. 3.3Bendera `m`: multilineDengan bendera `m`, `^` dan `$` berlabuh ke awal/akhir setiap baris.~10 min
  4. 3.4Garis kosong dan rapikanPola yang berguna: mencocokkan baris kosong, memangkas spasi di awal/akhir baris.~10 min

04 · Modul 4 — Kelompok dan pergantian

4 pelajaran

Kelompokkan dengan `()`, pilih di antara alternatif dengan `|`, hindari pengambilan dengan `(?:...)`, beri nama grup dengan `(?<nama>...)` dan rujuk kembali ke pengambilan sebelumnya dengan referensi balik.

  1. 4.1Grup tangkapan: `(...)`Tanda kurung untuk mengelompokkan dan menangkap; akses grup 1, 2, 3… dalam pertandingan.~10 min
  2. 4.2Pergantian: `|`Pipa memilih antara dua atau lebih subpola; prioritas dan tanda kurung.~10 min
  3. 4.3Grup yang tidak menangkap: `(?:...)`Mengelompokkan tanpa membuat tangkapan: berguna saat Anda hanya perlu mengukur atau bergantian.~10 min
  4. 4.4Grup bernama dan referensi belakang`(?<nama>...)` untuk memberi nama; `\1` `\k<nama>` untuk merujuk kembali ke pengambilan.~12 min

05 · Modul 5 — Kelas karakter

4 pelajaran

Tentukan set khusus dengan `[...]`, gunakan rentang, negasikan dengan `[^...]` dan capai properti Unicode dengan `\p{...}` dan tanda `u`.

  1. 5.1Kumpulan karakter: `[abc]`Tanda kurung siku menentukan sekumpulan karakter yang diperbolehkan dalam satu posisi.~8 min
  2. 5.2Rentang di dalam kelas: `[a-z0-9]`Interval melalui tanda hubung; menggabungkan rentang dan karakter tunggal.~8 min
  3. 5.3Negasi: `[^...]`Kelas yang dinegasikan cocok dengan apa pun **kecuali** karakter yang terdaftar.~8 min
  4. 5.4Properti Unicode lolos`\p{L}`, `\p{N}`, `\p{Script=...}` dengan tanda `u`: kelas Unicode semantik.~12 min

06 · Modul 6 — Melihat-lihat

4 pelajaran

Pernyataan lebar nol: melihat ke depan atau ke belakang dalam string tanpa menggunakan karakter. Lihat ke depan `(?=)` `(?!)`, lihat ke belakang `(?<=)` `(?<!)`.

  1. 6.1Pandangan ke depan yang positif: `(?=...)`Periksa apakah pola tertentu mengikuti posisi saat ini, tanpa menghabiskannya.~10 min
  2. 6.2Pandangan ke depan negatif: `(?!...)`Periksa apakah pola tertentu TIDAK mengikuti posisi saat ini.~10 min
  3. 6.3Lihat ke belakang: `(?<=...)` `(?<!...)`Versi pencarian "lihat ke belakang"; Dukungan ES2018+.~12 min
  4. 6.4Melihat-lihat dalam praktiknyaEkstrak nilai tanpa menyertakan konteks, validasi kata sandi, parsing angka yang dibatasi.~12 min

07 · Modul 7 - Bendera, substitusi, pemisahan

4 pelajaran

Semua flag (termasuk `d`, `v`), `String.prototype.replace`/`replaceAll`/`split` dengan regex, mereferensikan `$1`/`$<name>` dalam string substitusi dan callback pengganti.

  1. 7.1Semua bendera secara detail`g i ms u v y d`: apa yang dilakukan masing-masing dan bagaimana kombinasinya.~12 min
  2. 7.2Penggantian dasar dan `$1`Ganti kecocokan dengan string tetap atau dengan referensi balik `$1` / `$<nama>`.~10 min
  3. 7.3Ganti dengan panggilan balikFungsi substitusi: ubah setiap kecocokan dengan kode JS arbitrer, akses ke grup.~12 min
  4. 7.4Pisahkan dengan regexPisahkan string pada suatu pola (CSV permisif, tokenizer minimal).~10 min

08 · Modul 8 — Latihan

4 pelajaran

Gabungkan semuanya pada masalah nyata: validasi email, parsing log, ekstrak URL/IP, tulis pola yang tahan ReDoS.

  1. 8.1Memvalidasi emailPola email yang "cukup baik", dengan penjelasan trade-offnya.~12 min
  2. 8.2Pengurai log ApacheEkstrak IP, metode, jalur, dan kode status dari baris log menggunakan grup bernama.~12 min
  3. 8.3Mengekstrak URL dan IPKenali URL http(s) dan alamat IPv4 dalam teks bentuk bebas.~12 min
  4. 8.4Menulis pola aman ReDoSKenali pola bencana (`(a+)+b`), faktorkan ulang, gunakan bilangan mirip atom.~14 min