DokumentyObrazyMediaNarzędzia PDF

Tester Regex Online

Testuj wyrazenia regularne w czasie rzeczywistym z podswietlaniem dopasowan.

//

2 matches found

#1hello@convertir.ai@14
#2support@example.com@36
Processed in your browser

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.

Trzy kroki, żadnych komplikacji

1

Wprowadz wzorzec regex

Wpisz swoje wyrazenie regularne w polu wzorca. Wybierz flagi: g, i, m, s.

2

Wklej tekst testowy

Wprowadz tekst, na ktorym chcesz przetestowac wzorzec. Dopasowania podswietlaja sie natychmiast.

3

Sprawdz wyniki

Przejrzyj pelne dopasowania i grupy przechwytujace. Dostosuj wzorzec, az uzyskasz pozadany wynik.

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.