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).
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.
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
Temukan setiap triplet karakter yang dibatasi oleh tanda kurung, mis. `(abc)`, `(xyz)`. Gunakan wildcard untuk 3 karakter dalam.
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
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).
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
Find all 3-character sequences starting with `c` and ending with `t` (e.g. `cat`, `cot`, `c-t`).
Tunjukkan petunjuk
Polanya menggunakan titik '.' untuk mewakili karakter tengah wildcard.
Solusi tersedia setelah 3 upaya