WikiPlus

Tester Regex online — testuj wyrażenia regularne w czasie rzeczywistym

Wyrażenia regularne (regex) to jeden z najpotężniejszych, ale i najtrudniejszych do opanowania narzędzi programistycznych. Nawet doświadczeni programiści sięgają po testery regex, aby zweryfikować swoje wzorce przed wbudowaniem ich w kod. Tester Regex online na WikiPlus pozwala natychmiastowo testować wyrażenia regularne na tekście testowym, z podświetlaniem dopasowań w czasie rzeczywistym. Idealne narzędzie do nauki regex, debugowania wzorców i walidacji danych wejściowych.

Podstawy wyrażeń regularnych — składnia i metaznaki

Wyrażenia regularne to język wzorców do wyszukiwania i manipulacji tekstem. Kilka kluczowych elementów: kropka (.) dopasowuje dowolny znak. Gwiazdka (*) oznacza 0 lub więcej powtórzeń poprzedniego elementu. Plus (+) oznacza 1 lub więcej powtórzeń. Znak zapytania (?) oznacza 0 lub 1 wystąpienie. Nawiasy kwadratowe [] definiują klasę znaków — [a-z] dopasowuje dowolną małą literę. Klasy skrótowe: \d — cyfra, \w — znak słowny (litera, cyfra, podkreślenie), \s — biały znak. Daszek ^ oznacza początek linii (lub negację w klasie znaków). Dolar $ oznacza koniec linii. Parenety () tworzą grupy przechwytywania. Pionowa kreska | oznacza alternatywę (lub). Nawiasy klamrowe {n,m} określają liczbę powtórzeń.

Jak korzystać z testera regex online?

Tester Regex na WikiPlus ma prosty, intuicyjny interfejs podzielony na dwa obszary. W górnym polu wpisz swoje wyrażenie regularne. W dolnym polu wklej tekst testowy. W miarę pisania, tester natychmiast podświetla wszystkie dopasowania w tekście — bez konieczności naciskania jakiegokolwiek przycisku. Flagi regex możesz ustawiać przełącznikami: g (global — znajdź wszystkie dopasowania), i (case-insensitive — ignoruj wielkość liter), m (multiline — ^ i $ dopasowują linie, nie cały tekst), s (dotAll — kropka dopasowuje też nową linię). Po prawej stronie widoczne są grupy przechwytywania i ich wartości dla każdego dopasowania. Jeśli wyrażenie zawiera błąd składniowy, narzędzie wyświetla czytelny komunikat zamiast zawieszać się lub zwracać pusty wynik.

Praktyczne przykłady wyrażeń regularnych

Oto kilka gotowych wzorców regex do najczęstszych zastosowań. Walidacja adresu email: `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` — sprawdza podstawową strukturę adresu email. Walidacja numeru telefonu (format polski): `^(\+48)?[\s-]?\d{3}[\s-]?\d{3}[\s-]?\d{3}$` — obsługuje 9-cyfrowe numery z opcjonalnym kodem kraju +48. Wyodrębnianie adresów URL: `https?://[^\s<>"{}|\\^`\[\]]+` — dopasowuje linki HTTP i HTTPS. Walidacja NIP: `^\d{3}-?\d{3}-?\d{2}-?\d{2}$` — sprawdza format polskiego NIPu. Walidacja kodu pocztowego: `^\d{2}-\d{3}$` — format XX-XXX. Wyodrębnianie dat ISO: `\d{4}-\d{2}-\d{2}` — format YYYY-MM-DD.

Flagi regex i ich znaczenie w testowaniu

Flagi (znane też jako modyfikatory) zasadniczo zmieniają zachowanie wyrażeń regularnych. Flaga g (global) jest krytyczna przy zastępowaniu — bez niej String.replace() w JavaScript zastępuje tylko pierwsze dopasowanie. Flaga i (case-insensitive) upraszcza wzorce — zamiast pisać [aA][bB][cC] możesz napisać abc z flagą i. Flaga m (multiline) jest niezbędna gdy parsujusz tekst wieloliniowy — ^ i $ zaczynają i kończą się na każdej linii zamiast na całym ciągu. Flaga s (dotAll, w nowszych silnikach) pozwala kropce dopasowywać znaki nowej linii, co przydaje się przy parsowaniu bloków tekstu. Flaga u (unicode) zapewnia poprawną obsługę znaków spoza Basic Latin, w tym polskich liter, emojis i innych. Flaga v (unicodeSets) w najnowszych standardach daje jeszcze bardziej precyzyjną obsługę Unicode.

Często zadawane pytania

Dlaczego moje wyrażenie regex działa w testerze, ale nie w kodzie?
Najczęstsze przyczyny: różnice w flagach (tester może domyślnie mieć flagę g lub i, której nie używasz w kodzie), różne silniki regex (JavaScript vs Python vs PHP mają subtelne różnice), podwójny backslash w kodzie (w ciągu JavaScript `\d` to dosłownie \d, musisz pisać `\\d` lub użyć literału /\d/).
Jak sprawdzić czy cały ciąg pasuje do wzorca (nie tylko fragment)?
Użyj kotwic ^ i $ na początku i końcu wzorca: `^wzorzec$`. Bez kotwic regex szuka wzorca gdziekolwiek w ciągu — `\d+` dopasuje cyfry w środku tekstu. Z kotwicami `^\d+$` wymaga, żeby cały ciąg składał się tylko z cyfr.
Jakie są różnice między greedy i lazy (non-greedy) dopasowaniem?
Domyślnie kwantyfikatory są chciwe (greedy) — dopasowują jak najwięcej znaków. `.*` w tekście 'abc def' dopasuje cały 'abc def'. Leniwy (lazy) kwantyfikator `.*?` dopasowuje jak najmniej — zatrzymuje się przy pierwszej możliwości. Używaj `?` po kwantyfikatorze: `*?`, `+?`, `{n,m}?`.