Passer au contenu principal
eLearner.app
Module 3 · Leçon 3 sur 411/32 dans le cours~10 min
Leçons du module (3/4)

Flag `m`: multiline

Con la flag m (multiline) le ancore ^ e $ cambiano significato: non sono piu' inizio/fine dell'intera stringa, ma inizio/fine di ogni riga. Una riga e' delimitata da \n (o dall'inizio/fine della stringa).

Code
Pattern: ^Errore
Flag:    gm
Sample:  Errore: A\nInfo: B\nErrore: C
         ^^^^^^         ^^^^^^

Senza m matcherebbe solo Errore all'inizio assoluto del sample (1 match). Con m, matcha l'inizio di ogni riga (2 match).

m NON cambia il punto

Una confusione frequente: la flag m NON cambia il significato del punto .. Il punto continua a NON matchare \n anche con m. Per far matchare il punto su tutto serve la flag s (vista nel modulo 1).

m e s sono ortogonali: puoi usarle insieme (ms), separatamente, o nessuna delle due.

Multiline flag ed elaborazione riga per riga

La flag m modifica il comportamento di ^ e $ facendoli corrispondere rispettivamente all'inizio e alla fine di ciascuna riga (delimitata da \\n) all'interno di un testo multilinea, anziché fermarsi solo all'inizio e fine assoluti dell'intera stringa.

Prova tu

Exercice#regex.m3.l3.e1
Tentatives : 0Chargement…

Trova ogni riga che inizia con `ERROR`. Ogni riga e' separata da \\n; usa flag `g` e `m`.

Chargement de l'éditeur…
Afficher l'indice

La flag m fa si' che ^ matchi anche l'inizio di righe interne, non solo il primo carattere assoluto.

Solution disponible après 3 tentatives

Esercizio di ripasso

Exercice#regex.m3.l3.e2
Tentatives : 0Chargement…

Trova ogni riga che TERMINA con un punto. Usa l'ancora `$` con flag `m` e `g`.

Chargement de l'éditeur…
Afficher l'indice

\\.$ con flag gm matcha il punto a fine di ogni riga, non solo a fine sample.

Solution disponible après 3 tentatives

Sfida aggiuntiva

Exercice#regex.m3.l3.e3
Tentatives : 0Chargement…

Trova tutte le righe in un log multilinea che iniziano esattamente con la stringa `ID:` seguita da una cifra.

Chargement de l'éditeur…
Afficher l'indice

Usa ^ prima di ID: e assicurati che la flag m sia attiva nel pattern.

Solution disponible après 3 tentatives