Lompati ke konten utama
Modul 1 · Pelajaran 3 dari 43/32 dalam kursus~8 min
Pelajaran modul (3/4)

Karakter pengganti: titik `.`

titik . di regex adalah wildcard: cocok dengan single apa pun karakter\u2026 dengan satu pengecualian penting: TIDAK cocok dengan baris baru (\n).

Code
Pattern: c.t
Sample:  cat cot cut c@t c\nt
         ^^^ ^^^ ^^^ ^^^

Tiga huruf: a c, karakter apa saja, a t. Tidak ada baris baru di antaranya, jadi c\nt tidak cocok (secara default).

Titik ini sangat berguna tetapi juga berbahaya: digunakan tanpa disiplin menangkap lebih dari yang Anda inginkan. Dikombinasikan dengan bilangan di modul 2 (.*, .+?) ini adalah sumber dari 90% pola yang "tidak berfungsi seperti saya diharapkan".

Bendera s: "dotAll"

Dengan tanda s (juga disebut dotAll atau single-line) titiknya cocok setiap karakter, termasuk baris baru. Berguna untuk mengekstrak blok yang membentang beberapa baris.

Code
Pattern: <p>.*</p>
Flag:    gs
Sample:  <p>prima\nseconda</p>
         ^^^^^^^^^^^^^^^^^^^^^

Batasan dan perilaku wildcard titik

Titik . adalah karakter pengganti yang kuat, namun secara default tidak cocok dengan karakter baris baru (\\n). Jika Anda ingin titik tersebut benar-benar cocok dengan semuanya, termasuk baris baru, Anda harus mengaktifkan tanda s (dotAll). Berhati-hatilah saat menggabungkan titik dengan bilangan (.*), karena cenderung memakan terlalu banyak teks (perilaku serakah).

Cobalah

Latihan#regex.m1.l3.e1
Upaya: 0Memuat…

Temukan setiap triplet karakter yang dibatasi oleh tanda kurung, mis. `(abc)`, `(xyz)`. Gunakan wildcard untuk 3 karakter dalam.

Memuat editor…
Tunjukkan petunjuk

Tiga titik untuk tiga karakter arbitrer. Tanda kurung adalah karakter meta: karakter tersebut harus di-escape dengan \\.

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#regex.m1.l3.e2
Upaya: 0Memuat…

Ekstrak blok antara `[INIZIO]` dan `[FINE]`, yang dapat mencakup beberapa baris. Anda memerlukan tanda `s` agar titik tersebut juga cocok dengan baris baru, dan versi pembilang yang 'malas' (`.*?`, modul 2).

Memuat editor…
Tunjukkan petunjuk

Tanpa tanda s, titik berhenti di akhir baris: tambahkan. Bentuknya .*? (malas) menghentikan pertandingan pada [FINE] pertama.

Solusi tersedia setelah 3 upaya

Tantangan tambahan

Latihan#regex.m1.l3.e3
Upaya: 0Memuat…

Find all 3-character sequences starting with `c` and ending with `t` (e.g. `cat`, `cot`, `c-t`).

Memuat editor…
Tunjukkan petunjuk

Polanya menggunakan titik '.' untuk mewakili karakter tengah wildcard.

Solusi tersedia setelah 3 upaya