Przejdź do głównej treści
eLearner.app
Moduł 3 · Lekcja 3 z 411/32 w kursie~10 min
Lekcje modułu (3/4)

Flaga `m`: multiline

Z flagą m (multiline) kotwice ^ i $ zmieniają swoje znaczenie: nie oznaczają już początku/końca całego ciągu znaków, ale początek/koniec każdej linii. Linia jest ograniczona znakiem \n (lub początkiem/końcem ciągu znaków).

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

Bez flagi m wzorzec dopasowałby tylko słowo Errore na samym początku tekstu (1 dopasowanie). Z flagą m dopasowuje początek każdej linii (2 dopasowania).

Flag m NIE zmienia znaczenia kropki

Częste nieporozumienie: flaga m NIE zmienia znaczenia kropki .. Kropka nadal NIE dopasowuje znaku nowej linii \n, nawet przy aktywnej fladze m. Aby kropka dopasowywała wszystko, potrzebujesz flagi s (omówionej w module 1).

Flagi m i s są niezależne: możesz używać ich razem (ms), osobno lub nie używać żadnej z nich.

Flaga multiline i przetwarzanie linia po linii

Flaga m modyfikuje zachowanie kotwic ^ i $, sprawiając, że dopasowują one początek i koniec każdej linii (ograniczonej znakiem \n) wewnątrz wielolinijkowego bloku tekstu, zamiast analizować tylko bezwzględny początek i koniec całego ciągu.

Spróbuj sam

Ćwiczenie#regex.m3.l3.e1
Próby: 0Ładowanie...

Znajdź każdą linię zaczynającą się od słowa `ERROR`. Każda linia jest oddzielona znakiem \n; użyj flag `g` i `m`.

Ładowanie edytora...
Pokaż wskazówkę

Flaga m sprawia, że ^ dopasowuje również początek wewnętrznych linii, a nie tylko absolutnie pierwszy znak.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie powtórzeniowe

Ćwiczenie#regex.m3.l3.e2
Próby: 0Ładowanie...

Znajdź każdą linię KOŃCZĄCĄ się kropką. Użyj kotwicy `$` z flagami `m` i `g`.

Ładowanie edytora...
Pokaż wskazówkę

Zapis \.$ z flagami gm dopasowuje kropkę na końcu każdej linii, a nie tylko na końcu całego tekstu.

Rozwiązanie dostępne po 3 próbach

Dodatkowe wyzwanie

Ćwiczenie#regex.m3.l3.e3
Próby: 0Ładowanie...

Znajdź wszystkie linie w wielolinijkowym logu, które zaczynają się dokładnie od ciągu `ID:` po którym następuje cyfra.

Ładowanie edytora...
Pokaż wskazówkę

Użyj ^ przed ID: i upewnij się, że flaga m jest włączona.

Rozwiązanie dostępne po 3 próbach