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

Puste linie i trim

Połączmy kotwice i flagę m w celu zrealizowania dwóch niezwykle przydatnych schematów: dopasowywania pustych linii oraz przycinania (trim) białych znaków na początku i na końcu każdej linii.

Puste linie

Pusta linia to pozycja, w której kotwice ^ i $ zbiegają się: zero znaków między początkiem a końcem linii.

Code
Pattern: ^$
Flag:    gm
Sample:  uno\n\ndue\n\n\ntre

Dopasowanie ma szerokość zerową: edytor pokaże znacznik między dwoma znakami \n. Aby dopasować również linie "puste, ale zawierające spacje", użyj wzorca ^\s*$.

Przycinanie linii (trim)

Aby usunąć białe znaki na początku lub na końcu linii, połącz odpowiednią kotwicę + klasę \s + kwantyfikator:

Code
^\s+    dopasowuje białe znaki na początku linii (można je zastąpić pustym ciągiem znaków, moduł 7)
\s+$    dopasowuje białe znaki na końcu linii

Z flagami gm zbierzesz wszystkie białe znaki z marginesów każdej linii.

Identyfikacja pustych linii i spacji na końcu

Czysta pusta linia jest dopasowywana przez wzorzec ^$multi_replace_file_content (z flagą m). Jednak wiele linii pozornie pustych zawiera niewidoczne spacje lub tabulacje. Wzorzec ^\s*$ przechwytuje również te linie, co znacznie ułatwia oczyszczanie danych.

Spróbuj sam

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

Znajdź każdą pustą linię w próbce (zero znaków między dwoma znakami nowej linii). Użyj `^$` z flagami `gm`.

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

Pusta linia to pozycja, w której zbiegają się ^ i $. Flaga m jest obowiązkowa.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie powtórzeniowe

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

Znajdź białe znaki na końcu każdej linii (białe znaki poprzedzające znak nowej linii). Użyj `\s+$` z flagami `gm`.

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

Zapis \s+ dopasowuje jeden lub więcej białych znaków (w tym tabulację). Z flagami gm kotwiczysz dopasowanie do końca każdej linii.

Rozwiązanie dostępne po 3 próbach

Dodatkowe wyzwanie

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

Znajdź wszystkie linie, które zaczynają się od znaku `#` (całe linie komentarza, ignorując komentarze wewnątrz linii).

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

Użyj ^ na początku wzorca, aby wskazać, że znak komentarza # musi rozpoczynać linię.

Rozwiązanie dostępne po 3 próbach