Tekst
Regex Tester / Find & Replace
Testowanie wyrażeń regularnych na rzeczywistym tekście: podświetlone dopasowania i przeanalizowane grupy przechwytujące, lub zamiana znalezionych dopasowań na nowy tekst.
A regular expression (regex) is a compact language for describing patterns in text — for searching, validating a format, or replacing matches. This tool highlights matches in real text as you type the pattern, breaks out capture groups, and supports a find-and-replace mode.
How to use it
- Search: enter a pattern and some test text — every match is highlighted and capture groups are broken out separately.
- Replace: switch to Replace mode, provide a replacement template (referencing groups with $1, $2), and see the result instantly.
- Flags (g, i, m, s) toggle independently and immediately affect how many matches are found and how.
Common uses
- Building and debugging a regex before pasting it into code — you see the result without running the program.
- Bulk find-and-replace against a pattern (e.g. reformatting phone numbers or dates).
- Validating an input format (email, card number, slug) against real examples.
Things to keep in mind
Greedy quantifiers (*, +) grab as many characters as possible — add ? for the minimal match instead (e.g. .*? instead of .*).
Syntax varies slightly between languages — an expression that works here (a JavaScript engine) may need adjusting for PCRE, .NET, or Python.
Artykuł o tym narzędziu: Wyrażenia regularne: podstawowa składnia i typowe wzorce
Najczęstsze pytania
Jaki silnik regex jest używany?
Narzędzie używa silnika regex JavaScript, a nie PCRE, więc niektóre składnie specyficzne dla PCRE (jak rekurencyjne asercje lub niektóre tryby dopasowania posesywnego) nie będą tu działać; obsługiwane są popularne flagi, takie jak g, i, m, s i u.
Jaka jest różnica między kwantyfikatorami zachłannymi a leniwymi oraz między Test a Replace?
Zachłanny kwantyfikator, jak * lub +, przechwytuje jak najwięcej tekstu, podczas gdy jego leniwa wersja (*?, +?) zatrzymuje się jak najwcześniej; jeśli chodzi o tryby, Test podświetla dopasowania i wypisuje grupy przechwytujące (w tym nazwane), a Replace stosuje tekst zastępczy, z odwołaniami takimi jak $1, do każdego dopasowania.
Czy mój tekst i wyrażenie są wysyłane na serwer?
Nie, ocena wyrażenia regularnego odbywa się całkowicie po stronie klienta w Twojej przeglądarce, nic nie jest wysyłane online.
Czym jest katastrofalny backtracking?
Zagnieżdżone kwantyfikatory, takie jak (a+)+, mogą przy określonych danych wejściowych zmusić silnik do przetworzenia wykładniczej liczby kombinacji — strona lub skrypt „zawiesza się" na pozornie prostym wyrażeniu. To realna klasa podatności (ReDoS), dlatego złożone zagnieżdżone kwantyfikatory warto testować na długich, „prawie pasujących" ciągach.
Dlaczego moje wyrażenie działa w jednym języku programowania, a w innym nie?
Składnia regex nie jest w pełni znormalizowana: PCRE (PHP i wiele innych języków), .NET, Python re oraz JavaScript mają drobne różnice w obsłudze niektórych konstrukcji (np. look-behind czy nazwanych grup) — wyrażenie napisane dla jednego silnika nie zawsze działa bez zmian w innym.