Lektionen des Moduls (3/4)
`m`-Flag: Multiline
Mit dem Flag m (Multiline) ändern die Anker ^ und $ ihre Bedeutung: Sie stehen nicht mehr für Anfang/Ende des gesamten Strings, sondern für Anfang/Ende jeder Zeile. Eine Zeile wird durch \n (oder durch den Anfang/das Ende des Strings) begrenzt.
Pattern: ^Errore
Flag: gm
Sample: Errore: A\nInfo: B\nErrore: C
^^^^^^ ^^^^^^Ohne m würde es nur Errore am absoluten Anfang des Beispiels matchen (1 Treffer). Mit m matcht es den Anfang jeder Zeile (2 Treffer).
m ändert den Punkt NICHT
Eine häufige Verwirrung: Das Flag m ändert NICHT die Bedeutung des Punktes .. Der Punkt matcht auch mit m KEINEN Zeilenumbruch \n. Damit der Punkt alles matcht, benötigst du das Flag s (behandelt in Modul 1).
m und s sind unabhängig voneinander: Du kannst sie zusammen (ms), separat oder gar nicht verwenden.
Multiline-Flag und zeilenweise Verarbeitung
Das Flag m modifiziert das Verhalten von ^ und $, indem es sie mit dem Anfang und dem Ende jeder Zeile (begrenzt durch \n) innerhalb eines mehrzeiligen Textblocks übereinstimmen lässt, anstatt nur den absoluten Anfang und das absolute Ende des gesamten Strings zu betrachten.
Probiere es aus
Finde jede Zeile, die mit `ERROR` beginnt. Jede Zeile ist durch \n getrennt; verwende die Flags `g` und `m`.
Hinweis anzeigen
Das m-Flag bewirkt, dass ^ auch mit dem Anfang von inneren Zeilen übereinstimmt, nicht nur mit dem absolut ersten Zeichen.
Lösung nach 3 Versuchen verfügbar
Wiederholungsübung
Finde jede Zeile, die mit einem Punkt ENDET. Verwende den Anker `$` mit den Flags `m` und `g`.
Hinweis anzeigen
\.$ mit den gm-Flags matcht den Punkt am Ende jeder Zeile, nicht nur am Ende des Beispiels.
Lösung nach 3 Versuchen verfügbar
Zusätzliche Herausforderung
Finde alle Zeilen in einem mehrzeiligen Protokoll, die exakt mit der Zeichenkette `ID:` gefolgt von einer Ziffer beginnen.
Hinweis anzeigen
Verwende ^ vor ID: und stelle sicher, dass das m-Flag aktiv ist.
Lösung nach 3 Versuchen verfügbar