Przejdź do treści głównej
FreeOnlineTools Go
Polski
Wyjaśnienie

Czym Jest Wyrażenie Regularne? Kompletnowe Wyjaśnienie

Autor: FreeOnlineTools Team · Zaktualizowano 2026-09-02

Szybka odpowiedź

Regular expression to wzorzec opisujący zbiór stringów. Używa literal characters i metacharacters (*, +, ?, ., ^, $, [], (), {}, |, \) ze specjalnymi znaczeniami. Regex jest używany do walidacji, wyszukiwania, ekstrakcji i zastępowania. Użyj naszego darmowego Regex Tester.

Wstęp

Regular expression (regex lub regexp) to sekwencja znaków, która definiuje wzorzec wyszukiwania. Wzorzec jest używany przez algorytmy string-searching do znajdowania, matchowania lub zastępowania tekstu. Regex wywodzi się z teorii języków formalnych lat 50. (Stephen Kleene) i został adoptowany do narzędzi tekstowych Unix (grep, sed, awk) w latach 70. Dziś regex jest wbudowany w praktycznie każdy język programowania i edytor.

Krok po kroku

  1. Zrozumienie dosłowności i metaznaków

    Litery (a, b, 1, @) pasują do siebie. Metaznaki mają specjalne znaczenie: . dopasowuje dowolny znak, * oznacza zero lub więcej, + oznacza jeden lub więcej, ? oznacza zero lub jeden, ^ początek dopasowania, $ koniec dopasowania.

  2. Naucz się klas postaci

    Nawiasy kwadratowe [] definiują klasę znaków — [aeiou] pasuje do dowolnej samogłoski, [0-9] dopasowuje dowolną cyfrę, [^0-9] dopasowuje dowolną inną niż cyfrę. Klasy skrócone: \d (cyfra), \w (znak słowa), \s (biała spacja) i ich wielkie negacje.

  3. Użyj kwantyfikatorów

    Kwantyfikatory określają, ile razy wzór się powtarza: * (0+), + (1+), ? (0 lub 1), {n} (dokładnie n), {n,} (n+), {n,m} (n do m). Domyślnie chciwy; dodać ? dla leniwego dopasowywania (np. *?).

  4. Grupa i kotwica

    Nawiasy () tworzą grupy przechwytywania. Naprzemienność | pasuje do obu stron (kot|pies). Kotwice ^ i $ dopasowują początek i koniec łańcucha. Użyj ich, aby zbudować złożone wzory z prostszych.

Przykłady

Dopasuj wzór przypominający e-mail

Wejście: Pattern: [a-z]+@[a-z]+\.[a-z]+

Wyjście: Dopasowania: alice@example.com, bob@test.org

Dopasuj format numeru telefonu

Wejście: Pattern: \d{3}-\d{3}-\d{4}

Wyjście: Matches: 555-123-4567

Wyodrębnij pary klucz-wartość

Wejście: Pattern: (\w+)=(\w+)

Wyjście: Matches 'key=value' with group 1 as key, group 2 as value

Typowe problemy

  • Chciwe dopasowywanie, nadmierne zużycie —.* dopasowuje jak najwięcej. Używać .*? dla leniwego dopasowywania, aby znaleźć najkrótsze dopasowanie.
  • Zapominanie o ucieczce od znaków specjalnych —., *, +, ? itd. są specjalne. Użyj \, aby dopasować je dosłownie (np. \. dopasowuje dosłowną kropkę).
  • Katastrofalne cofanie się — wzorce z zagnieżdżonymi kwantyfikatorami (np. (a+)+) na niektórych danych wejściowych mogą zająć wykładniczy czas, powodując ataki ReDoS.
  • Nadmierne dopasowanie — bez kotwic (^ i $) wzór pasuje wszędzie. Użyj ^...$, aby dopasować cały ciąg.

Porady

  • Zacznij od prostego i stopniowo dodawaj złożoność — debugowanie złożonego wyrażenia regularnego na raz jest bardzo trudne.
  • Użyj testera wyrażeń regularnych, aby poeksperymentować ze wzorcami na podstawie przykładowego tekstu — zobacz dopasowania podświetlane w czasie rzeczywistym.
  • Komentuj złożone wyrażenia regularne, korzystając z trybu rozszerzonego (flaga /x w niektórych silnikach) lub dziel je na nazwane części.
  • Skorzystaj z naszego Testera Regex, aby natychmiast przetestować wzorce w przeglądarce — bez rejestracji, w pełni prywatnie.

Powiązane narzędzia

Powiązane przewodniki

Referencje