Przejdź do głównej treści
eLearner.app

Interaktywny kurs

Kurs Regex

Naucz się wyrażeń regularnych, budując wzorce na podstawie logów, URL-i, CSV i realistycznych tekstów: interaktywny edytor (playground) pokazuje dopasowania, grupy i zamiany w czasie rzeczywistym z zabezpieczeniem przed ReDoS.

01 · Módulo 1 — Podstawy

4 lekcji

Fundamenty wyrażeń regularnych: wzorce dosłowne, podstawowe klasy znaków, znak wieloznaczny `.` oraz unikanie znaków specjalnych (escaping).

  1. 1.1Wzorce dosłowneZwykłe znaki, wielkość liter i pierwsze uruchomienie: dopasowanie oraz indeks.~8 min
  2. 1.2Klasy podstawowe: \d \w \sPredefiniowane klasy dla cyfr, znaków alfanumerycznych i spacji (oraz ich zanegowane wersje).~10 min
  3. 1.3Znak wieloznaczny: kropka `.`Kropka dopasowuje niemal każdy znak: co wchodzi w jej skład, co jest wykluczone i dlaczego wymagana jest flaga `s`.~8 min
  4. 1.4Znak ucieczki dla metaznaków12 metaznaków wymagających ukośnika `\`, kiedy podwójny ukośnik jest niezbędny i dlaczego.~10 min

02 · Módulo 2 — Kwantyfikatory

4 lekcji

Ile powtórzeń: `*`, `+`, `?`, przedziały `{n,m}` oraz różnica między zachłannym (greedy) a leniwym (lazy) dopasowaniem.

  1. 2.1`*`, `+`, `?`Zero lub więcej, jeden lub więcej, opcjonalny: trzy podstawowe kwantyfikatory.~10 min
  2. 2.2Dokładne liczby wystąpień `{n,m}`Dokładnie `n`, od `n` do `m`, co najmniej `n`: kwantyfikator numeryczny.~10 min
  3. 2.3Greedy vs. lazyDomyślnie kwantyfikatory są zachłanne (`.*`); dodaj `?`, aby uzyskać wersję leniwą (`.*?`).~10 min
  4. 2.4Backtracking: podstawyCo robi silnik regex, gdy zachłanny kwantyfikator zawiedzie, i dlaczego może to być kosztowne.~12 min

03 · Módulo 3 — Kotwice i granice

4 lekcji

Pozycja, a nie znak: kotwiczenie do początku/końca tekstu, do granic słów oraz do początku/końca każdej linii za pomocą flagi `m`.

  1. 3.1Początek i koniec: `^` oraz `$`Kotwiczenie wzorca do pierwszego lub ostatniego znaku w tekście.~8 min
  2. 3.2Granice słów: `\b` `\B`Przejście między znakami słowa i znakami niebędącymi słowem; wyszukiwanie całych słów.~10 min
  3. 3.3Flaga `m`: multilineZ flagą `m` kotwice `^` i `$` odnoszą się do początku/końca każdej linii.~10 min
  4. 3.4Puste linie i trimPrzydatne wzorce: dopasowywanie pustych linii, usuwanie białych znaków na początku i końcu linii.~10 min

04 · Módulo 4 — Grupy i alternatywy

4 lekcji

Grupowanie za pomocą `()`, wybór spośród alternatyw za pomocą `|`, unikanie przechwytywania z `(?:...)`, nadawanie nazw grupom za pomocą `(?<nome>...)` oraz odwoływanie się do poprzednich grup za pomocą referencji wstecznych.

  1. 4.1Grupy przechwytujące: `(...)`Nawiasy okrągłe do grupowania i przechwytywania; dostęp do grup 1, 2, 3… w dopasowaniach.~10 min
  2. 4.2Alternatywy: `|`Pionowa kreska do wyboru między dwoma lub więcej podwzorcami; pierwszeństwo operatorów i nawiasy.~10 min
  3. 4.3Grupy bez przechwytywania: `(?:...)`Grupowanie bez tworzenia przechwycenia: przydatne przy kwantyfikowaniu lub stosowaniu alternatyw.~10 min
  4. 4.4Grupy nazwane i referencje wsteczne`(?<nome>...)` do nadawania nazw; `\1` `\k<nome>` do odwoływania się do przechwyconych danych.~12 min

05 · Módulo 5 — Klasy znaków

4 lekcji

Definiowanie własnych zbiorów znaków za pomocą `[...]`, stosowanie zakresów, negowanie za pomocą `[^...]` oraz korzystanie z właściwości Unicode z `\p{...}` i flagą `u`.

  1. 5.1Zestawy znaków: `[abc]`Nawiasy kwadratowe do definiowania zbioru dozwolonych znaków na danej pozycji.~8 min
  2. 5.2Zakresy w klasach znaków: `[a-z0-9]`Przedziały z użyciem myślnika; łączenie zakresów i pojedynczych znaków.~8 min
  3. 5.3Negacja: `[^...]`Zanegowana klasa dopasowuje dowolny znak OPRÓCZ wymienionych.~8 min
  4. 5.4Unicode Property Escapes`\p{L}`, `\p{N}`, `\p{Script=...}` z flagą `u`: semantyczne klasy Unicode.~12 min

06 · Módulo 6 — Lookaround

4 lekcji

Asercje o zerowej szerokości: patrz w przód lub w tył w łańcuchu znaków bez konsumowania znaków. Lookahead `(?=)` `(?!)`, lookbehind `(?<=)` `(?<!)`.

  1. 6.1Dodatnie lookahead: `(?=...)`Sprawdza, czy za bieżącą pozycją występuje określony wzorzec, bez konsumowania znaków.~10 min
  2. 6.2Ujemne lookahead: `(?!...)`Sprawdza, czy za bieżącą pozycją NIE występuje określony wzorzec.~10 min
  3. 6.3Lookbehind: `(?<=...)` `(?<!...)`Wersje lookaround „patrzące wstecz”; wspierane od standardu ES2018+.~12 min
  4. 6.4Lookaround w praktyceWyodrębnianie wartości bez dołączania kontekstu, walidacja haseł, parsowanie rozdzielonych liczb.~12 min

07 · Módulo 7 — Flagi, zamiana i split

4 lekcji

Wszystkie flagi (w tym `d`, `v`), `String.prototype.replace`/`replaceAll`/`split` z wyrażeniami regularnymi, odwołania `$1`/`$<nome>` w ciągu zamieniającym oraz funkcje callback w zamianie.

  1. 7.1Wszystkie flagi w szczegółach`g i m s u v y d`: rola każdej z nich i sposoby ich łączenia.~12 min
  2. 7.2Podstawowa zamiana i `$1`Zamiana dopasowań na stały ciąg lub z użyciem referencji wstecznych `$1` / `$<nome>`.~10 min
  3. 7.3Zamiana z funkcją callbackFunkcja zamieniająca: transformacja każdego dopasowania za pomocą dowolnego kodu JS, dostęp do grup.~12 min
  4. 7.4Split z regexemPodział ciągu znaków na podstawie wzorca (tolerancyjny CSV, prosty tokenizator).~10 min

08 · Módulo 8 — Praktyka

4 lekcji

Zastosowanie wszystkiego w rzeczywistych problemach: walidacja adresów e-mail, parsowanie logów, wyodrębnianie adresów URL/IP oraz pisanie wyrażeń bezpiecznych przed ReDoS.

  1. 8.1Walidacja adresu e-mailWzorzec „wystarczająco dobry” do walidacji e-maili wraz z omówieniem kompromisów.~12 min
  2. 8.2Parser logów ApacheWyodrębnianie IP, metody, ścieżki i kodu statusu z linii logów za pomocą grup nazwanych.~12 min
  3. 8.3Wyodrębnianie adresów URL i IPRozpoznawanie adresów URL http(s) oraz IPv4 w wolnym tekście.~12 min
  4. 8.4Pisanie wzorców bezpiecznych przed ReDoSRozpoznawanie wzorców katastrofalnych (`(a+)+b`), ich refaktoryzacja, używanie kwantyfikatorów atomowych.~14 min