Tester Regex Online
Testuj wyrazenia regularne w czasie rzeczywistym z podswietlaniem dopasowan.
2 matches found
Po co tego uzywac
Debuguj swoje regex natychmiast
Czas rzeczywisty
Dopasowania podswietlaja sie w trakcie pisania. Bez przeladowywania, bez przyciskow wysylania.
Grupy przechwytujace
Kazda przechwycona grupa wyswietlana osobno z jej indeksem i wartoscia.
Wszystkie flagi
Pelna obsluga flag g, i, m, s z silnika ECMAScript/JavaScript.
Brak wysylania danych
Twoj tekst testowy nigdy nie opuszcza przegladarki. Idealny dla danych wrazliwych.
Jak to działa
Trzy kroki, żadnych komplikacji
Wprowadz wzorzec regex
Wpisz swoje wyrazenie regularne w polu wzorca. Wybierz flagi: g, i, m, s.
Wklej tekst testowy
Wprowadz tekst, na ktorym chcesz przetestowac wzorzec. Dopasowania podswietlaja sie natychmiast.
Sprawdz wyniki
Przejrzyj pelne dopasowania i grupy przechwytujace. Dostosuj wzorzec, az uzyskasz pozadany wynik.
FAQ
Masz pytania?
Wyrazenie regularne (regex lub regexp) to ciag znakow definiujacy wzorzec wyszukiwania w tekscie. Jest to jezyk formalny wywodzacy sie z teorii automatow i teorii jezykow formalnych. Za pomoca regex mozna wyszukiwac, walidowac, wyodrebniac i zastepowac tekst za pomoca zlozonych wzorcow w jednej linii kodu. Stosowane sa w kazdym jezyku programowania, edytorach tekstu, bazach danych i narzędziach wiersza polecen.
Najczesciej uzywane wzorce obejmuja: adres email (^[\w.+-]+@[\w-]+\.[\w.]+$), URL (https?://[\S]+), numer telefonu (\+?[\d\s\-()]{7,15}), kod pocztowy (/^\d{5}(-\d{4})?$/), date ISO (\d{4}-\d{2}-\d{2}), IPv4 (\b(?:\d{1,3}\.){3}\d{1,3}\b) oraz tylko znaki alfanumeryczne ([a-zA-Z0-9]+). Wzorce te sa punktem wyjscia - w produkcji powinny byc zawsze dostosowywane do dokladnie oczekiwanego formatu.
Flagi modyfikuja zachowanie wzorca: g (global) znajduje wszystkie dopasowania zamiast zatrzymywac sie na pierwszym; i (insensitive) ignoruje wielkosc liter; m (multiline) sprawia, ze ^ i $ dopasowuja poczatek i koniec kazdej linii, a nie tylko calego tekstu; s (dotAll) sprawia, ze kropka (.) dopasowuje rowniez znaki nowej linii, ktore domyslnie sa wykluczone. Flagi mozna laczyc: /pattern/gim.
Grupy przechwytujace, definiowane za pomoca nawiasow (), umozliwiaja wyodrebnianie konkretnych czesci dopasowania. Na przyklad /(\d{4})-(\d{2})-(\d{2})/ na '2024-03-15' przechwytuje trzy grupy: rok, miesiac i dzien. Nazwane grupy (?<nazwa>wzorzec) umozliwiaja dostep po nazwie zamiast indeksu numerycznego. Grupy nieprzechwytujace (?:wzorzec) grupuja bez przechwytywania, co jest przydatne do stosowania kwantyfikatorow bez tworzenia grupy.
Lookahead i lookbehind to asercje pozycji, ktore sprawdzaja, co wystepuje przed lub po pozycji, nie zuzywa jac znakow. Pozytywne lookahead (?=wzorzec): dopasowuje, jesli nastepuje wzorzec. Negatywne lookahead (?!wzorzec): dopasowuje, jesli NIE nastepuje wzorzec. Pozytywne lookbehind (?<=wzorzec): dopasowuje, jesli jest poprzedzone wzorcem. Negatywne lookbehind (?<!wzorzec): dopasowuje, jesli NIE jest poprzedzone wzorcem. Na przyklad \d+(?= dolarow) wyodrebnia liczby poprzedzajace ' dolarow' bez wlaczania slowa.
Historia wyrazen regularnych: od Kleene'a 1951 do PCRE
Wyrazenia regularne zostaly matematycznie sformulowane przez Stephena Kleene'a w 1951 roku w jego artykule 'Representation of Events in Nerve Nets and Finite Automata', ktory wprowadzil notacje algebraiczna dla jezykow regularnych. Operator gwiazdy Kleene'a (*) nosi jego imie. Pierwsza praktyczna implementacja programowa zostala wykonana przez Kena Thompsona w edytorze tekstu qed w 1968 roku dla CTSS (Compatible Time-Sharing System). Thompson zaimplementowal regex za pomoca efektywnej konstrukcji NFA (niedeterministycznego automatu skonczenie stanowego) gwarantujacego zlozonosc O(n) wzgledem rozmiaru tekstu.
PCRE (Perl Compatible Regular Expressions) zostalo stworzone przez Philipa Hazela w 1997 roku jako biblioteka C reimplementujaca skladnie regex Perla 5. PCRE dodalo funkcje nieobecne w klasycznych silnikach: lookahead/lookbehind, nazwane grupy, backreferences i rekurencje. PCRE stalo sie de facto silnikiem regex dla PHP, Apache, nginx, R i setek innych aplikacji. ECMAScript (JavaScript) implementuje wlasny silnik o podobnej, lecz odmiennej semantyce; obsluge lookbehind dodano dopiero w ES2018.
We wspolczesnym tworzeniu aplikacji webowych regex sa niezbedne do walidacji formularzy w przegladarce, wyodrebniania danych przy scrapowaniu, transformacji w narzędziach budowania takich jak webpack i vite, regul routingu w frameworkach takich jak Express i Next.js oraz zaawansowanego wyszukiwania w edytorach takich jak VS Code. Roznica miedzy wariantami PCRE i ECMAScript dotyczy glownie: lookbehind o zmiennej dlugosci (PCRE go obsluguje, ECMAScript ma ograniczenia), warunkowych odwolywac i rekurencji (tylko PCRE) oraz niektorych sekwencji ucieczki.