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

Wzorce dosłowne

W wyrażeniach regularnych "zwykłe" znaki alfanumeryczne dopasowują po prostu same siebie: wpisz ciao jako wzorzec, a silnik wyszuka podciąg ciao w tekście. Nic bardziej magicznego: skanowanie od lewej do prawej pozycja po pozycji.

Code
Pattern: ciao
Sample:  Buongiorno, ciao mondo! Ti dico anche ciao.
                     ^^^^                        ^^^^

Dopasowanie (match) zawsze niesie ze sobą dwie podstawowe informacje:

  • dopasowany tekst (tutaj ciao);
  • indeks (offset liczony od 0), w którym zaczyna się w próbce (tutaj 12 i 38).

Wyrażenia regularne są domyślnie wrażliwe na wielkość liter: ciao nie pasuje do Ciao ani do CIAO. Aby zignorować wielkość liter, dodaj flagę i (case-insensitive).

Jak działa silnik

Silnik wyrażeń regularnych analizuje tekst po jednym znaku na raz. Kiedy szuka dosłownego wzorca ciao, najpierw szuka litery c. Po jej znalezieniu sprawdza, czy kolejnym znakiem jest i, potem a i na końcu o. Jeśli któryś z nich nie pasuje (mismatch), silnik cofa się (backtrack) do kolejnej pozycji początkowej i ponownie szuka c.

Wzorce dosłowne i flaga g

Bez flagi g (global) silnik zatrzymuje się na pierwszym znalezionym dopasowaniu i przerywa wyszukiwanie. Przy aktywnej fladze g kontynuuje do końca ciągu znaków i zbiera wszystkie kolejne dopasowania. W lekcjach tego kursu prawie zawsze będziemy włączać flagę g: chcemy zobaczyć wszystkie dopasowania obecne w tekście.

Spróbuj sam

Ćwiczenie#regex.m1.l1.e1
Próby: 0Ładowanie...

Znajdź wszystkie dokładne (wrażliwe na wielkość liter) wystąpienia słowa `ciao` w próbce. Wskazówka: pamiętaj o fladze `g`.

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

Wzorzec to samo słowo. Wielkie litery nie powinny być dopasowywane: brak flagi i.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie powtórzeniowe

Ćwiczenie#regex.m1.l1.e2
Próby: 0Ładowanie...

Znajdź wszystkie wystąpienia słowa `errore` w tekście, ignorując wielkość liter.

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

To samo słowo jako wzorzec, ale dodaj flagę i (ignorowanie wielkości liter) obok g.

Rozwiązanie dostępne po 3 próbach

Dodatkowe wyzwanie

Ćwiczenie#regex.m1.l1.e3
Próby: 0Ładowanie...

Zidentyfikuj i zbierz wszystkie dokładne wystąpienia słowa `WARNING` (wielkie litery, wrażliwe na wielkość liter) w przykładowym tekście logu.

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

Szukaj bezpośrednio ciągu WARNING, uważając, aby nie włączyć flagi i.

Rozwiązanie dostępne po 3 próbach