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` : multiligne

Avec le drapeau m (multiline), les ancres ^ et $ changent de signification : elles ne représentent plus le début/fin de toute la chaîne, mais le début/fin de chaque ligne. Une ligne est délimitée par \n (ou par le début/fin de la chaîne).

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

Sans m, il ne correspondrait qu'à Errore au début absolu de l'échantillon (1 correspondance). Avec m, il correspond au début de chaque ligne (2 correspondances).

m ne modifie PAS le point

Une confusion fréquente : le drapeau m ne modifie PAS la signification du point .. Le point ne correspond toujours PAS à \n, même avec m. Pour que le point corresponde à tout, vous avez besoin du drapeau s (couvert dans le module 1).

m et s sont orthogonaux : vous pouvez les utiliser ensemble (ms), séparément ou aucun des deux.

Drapeau multiline et traitement ligne par ligne

Le drapeau m modifie le comportement de ^ et $ en les faisant correspondre au début et à la fin de chaque ligne (délimitée par \n) dans un bloc de texte multiline, au lieu de regarder uniquement le début et la fin absolus de toute la chaîne.

À vous de jouer

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

Trouvez chaque ligne qui commence par `ERROR`. Chaque ligne est séparée par \n ; utilisez les drapeaux `g` et `m`.

Chargement de l'éditeur…
Afficher l'indice

Le drapeau m permet à ^ de correspondre également au début des lignes intérieures, pas seulement au premier caractère absolu.

Solution disponible après 3 tentatives

Exercice de révision

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

Trouvez chaque ligne qui se TERMINE par un point. Utilisez l'ancre `$` avec les drapeaux `m` et `g`.

Chargement de l'éditeur…
Afficher l'indice

\.$ avec les drapeaux gm correspond au point à la fin de chaque ligne, pas seulement à la fin de l'échantillon.

Solution disponible après 3 tentatives

Défi supplémentaire

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

Trouvez toutes les lignes d'un journal multiline qui commencent exactement par la chaîne `ID:` suivie d'un chiffre.

Chargement de l'éditeur…
Afficher l'indice

Utilisez ^ avant ID: et assurez-vous que le drapeau m est actif.

Solution disponible après 3 tentatives