Lecții din modul (3/4)
Steagul `m`: multilinie
Cu marcajul m (multilinie), ancorele ^ și $ își schimbă semnificația:
ele nu mai sunt începutul/sfârșitul a întregului șir, ci începutul/sfârșitul de
fiecare linie. O linie este delimitată de \n (sau de începutul/sfârșitul
sfoară).
Pattern: ^Errore
Flag: gm
Sample: Errore: A\nInfo: B\nErrore: C
^^^^^^ ^^^^^^Fără m s-ar potrivi numai cu Errore la începutul absolut al
eșantion (1 potrivire). Cu m, se potrivește cu începutul fiecărei linii (2
meciuri).
m NU schimbă punctul
O confuzie comună: steag-ul m NU schimbă semnificația punctului
.. Punctul încă NU se potrivește cu \n chiar și cu m. Pentru a face punctul
potriviți tot ce aveți nevoie cu steagul s (acoperit în modulul 1).
m și s sunt ortogonale: le puteți folosi împreună (ms), separat,
sau nici unul.
Flag multilinie și procesare linie cu linie
Indicatorul m modifică comportamentul ^ și $ făcându-le să se potrivească cu începutul și sfârșitul fiecărei linii (delimitate de \\n) în cadrul unui bloc de text cu mai multe linii, în loc să se uite doar la începutul și sfârșitul întregului șir de caractere.
Încearcă
Găsiți fiecare linie care începe cu „EROARE”. Fiecare linie este separată de \\n; utilizați steagurile `g` și `m`.
Afișează indiciu
Steagul m face ca ^ să se potrivească și cu începutul liniilor interioare, nu doar cu primul caracter absolut.
Soluție disponibilă după 3 încercări
Exercițiu de revizuire
Găsiți fiecare rând care se termină cu un punct. Utilizați ancora `$` cu steagurile `m` și `g`.
Afișează indiciu
\\.$ cu steaguri gm se potrivește cu perioada de la sfârșitul fiecărei linii, nu numai la sfârșitul eșantionului.
Soluție disponibilă după 3 încercări
Provocare suplimentară
Find all lines in a multiline log that start exactly with the string `ID:` followed by a digit.
Afișează indiciu
Folosiți ^ înainte de ID: și asigurați-vă că indicatorul m este activ.
Soluție disponibilă după 3 încercări