Pelajaran modul (3/4)
Bendera `m`: multiline
Dengan tanda m (multiline), jangkar ^ dan $ berubah arti:
mereka tidak lagi menjadi awal/akhir dari keseluruhan string, tetapi awal/akhir dari
setiap baris. Sebuah garis dibatasi oleh \n (atau pada awal/akhir
tali).
Pattern: ^Errore
Flag: gm
Sample: Errore: A\nInfo: B\nErrore: C
^^^^^^ ^^^^^^Tanpa m maka hanya akan cocok dengan Errore pada awal absolut dari
sampel (1 kecocokan). Dengan m, ini cocok dengan awal setiap baris (2
pertandingan).
m TIDAK mengubah titik
Kebingungan umum: tanda m TIDAK mengubah arti titik
.. Titik tersebut tetap TIDAK cocok dengan \n meskipun dengan m. Untuk membuat titik
cocokkan semua yang Anda perlukan dengan tanda s (dibahas dalam modul 1).
m dan s bersifat ortogonal: Anda dapat menggunakannya bersama-sama (ms), secara terpisah,
atau tidak keduanya.
Bendera multiline dan pemrosesan baris demi baris
Bendera m memodifikasi perilaku ^ dan $ dengan membuatnya cocok dengan awal dan akhir setiap baris (dibatasi oleh \\n) dalam blok teks multibaris, alih-alih hanya melihat awal dan akhir absolut dari keseluruhan string.
Cobalah
Temukan setiap baris yang dimulai dengan `ERROR`. Setiap baris dipisahkan oleh \\n; gunakan tanda `g` dan `m`.
Tunjukkan petunjuk
Bendera m membuat ^ cocok dengan awal baris dalam juga, tidak hanya karakter pertama yang absolut.
Solusi tersedia setelah 3 upaya
Tinjau latihan
Temukan setiap baris yang BERAKHIR dengan titik. Gunakan jangkar `$` dengan tanda `m` dan `g`.
Tunjukkan petunjuk
\\.$ dengan tanda gm cocok dengan titik di akhir setiap baris, tidak hanya di akhir sampel.
Solusi tersedia setelah 3 upaya
Tantangan tambahan
Find all lines in a multiline log that start exactly with the string `ID:` followed by a digit.
Tunjukkan petunjuk
Gunakan ^ sebelum ID: dan pastikan tanda m aktif.
Solusi tersedia setelah 3 upaya