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).
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
Trouvez chaque ligne qui commence par `ERROR`. Chaque ligne est séparée par \n ; utilisez les drapeaux `g` et `m`.
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
Trouvez chaque ligne qui se TERMINE par un point. Utilisez l'ancre `$` avec les drapeaux `m` et `g`.
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
Trouvez toutes les lignes d'un journal multiline qui commencent exactement par la chaîne `ID:` suivie d'un chiffre.
Afficher l'indice
Utilisez ^ avant ID: et assurez-vous que le drapeau m est actif.
Solution disponible après 3 tentatives