Regex tester

Regex tester: wpisz wzorzec, wybierz flagi i wklej tekst testowy. Zobaczysz każde dopasowanie z indeksem, zawartość numerowanych i nazwanych grup przechwytujących oraz objaśnienie każdej części wzorca po polsku. Dopasowanie wykonuje silnik JavaScript Twojej przeglądarki (ECMAScript).

Wpisz bez ukośników na początku i końcu, np. \d+ zamiast /\d+/. Wzorzec jest częścią linku i można go udostępnić – tekst testowy nie.
Wpisane dane są zapisywane tylko w tej przeglądarce.

Tekst do przeszukania. Zostaje w Twojej przeglądarce i nie trafia do linku.

Twój tekst zostaje w przeglądarce – nie jest wysyłany, zapisywany ani dodawany do paska adresu.

Wynik

Wynik
Dopasowania: 2
Dopasowania
NrIndeksDługośćDopasowanie
123102026-09-27
248102026-10-15
Grupy w każdym dopasowaniu
NrGrupaNazwaWartość
11jahr2026
12monat09
13tag27
21jahr2026
22monat10
23tag15
Objaśnienie wzorca
ElementZnaczenie
(?<jahr>początek grupy 1 o nazwie „jahr”
› \dcyfra 0–9
› {4}poprzedni element dokładnie 4 razy
)koniec grupy
-dosłowny tekst „-”
(?<monat>początek grupy 2 o nazwie „monat”
› \dcyfra 0–9
› {2}poprzedni element dokładnie 2 razy
)koniec grupy
-dosłowny tekst „-”
(?<tag>początek grupy 3 o nazwie „tag”
› \dcyfra 0–9
› {2}poprzedni element dokładnie 2 razy
)koniec grupy
Jako literał JavaScript
/(?<jahr>\d{4})-(?<monat>\d{2})-(?<tag>\d{2})/g

Jak to obliczamy

Ten regex tester korzysta z odmiany JavaScript wyrażeń regularnych, zdefiniowanej w standardzie ECMA-262 i zaimplementowanej w Twojej przeglądarce. Wzorzec, który działa tutaj, działa tak samo w String.prototype.match, matchAll, replace i RegExp.prototype.test – w Chrome, Firefoksie, Safari i Node.js.

Jak czytać wynik

Flagi

g znajduje wszystkie dopasowania zamiast tylko pierwszego, i ignoruje wielkość liter, m sprawia, że ^ i $ działają w każdej linii, s pozwala kropce dopasować znak nowej linii. u traktuje emoji i inne znaki spoza podstawowej płaszczyzny (BMP) jako jeden znak i włącza właściwości Unicode, np. \p{L} (dowolna litera, także ą, ę czy ł). v to nowsza wersja u z operacjami na zbiorach, np. [\p{L}--[a-z]]; u i v nie da się łączyć. y („sticky”) znajduje tylko dopasowania następujące po sobie bez przerw.

Ochrona przed nieskończonymi pętlami i zawieszeniem

Wzorce takie jak a* czy \b mogą dawać puste dopasowania. Tak jak sam JavaScript, tester przesuwa się wtedy o jeden znak (z u/v o cały punkt kodowy), więc nie powstaje nieskończona pętla. Wyszukiwanych jest najwyżej 1000 dopasowań.

Większym zagrożeniem jest katastrofalny backtracking (ReDoS): zagnieżdżone kwantyfikatory, np. (a+)+$, sprawdzają wykładniczą liczbę kombinacji na tekście, który nie pasuje – 30 znaków potrafi zająć silnik na minuty. Dlatego wyszukiwanie działa w osobnym wątku w tle i jest przerywane po 2 sekundach; strona pozostaje responsywna. Unikaj takich wzorców także we własnym kodzie, zwłaszcza przy danych od użytkowników.

Różnice względem innych odmian regex

PCRE (PHP), Python, Java i .NET różnią się w szczegółach: JavaScript nie ma kwantyfikatorów zaborczych (a++), grup atomowych ani kotwic \A i \Z; \w obejmuje tylko A–Z, a–z, 0–9 i podkreślenie – dla polskich liter użyj \p{L} z flagą u.

Twój tekst testowy nie jest wysyłany, zapisywany ani umieszczany w linku – trafiają tam tylko wzorzec i flagi.

Najczęściej zadawane pytania

Jak przetestować wyrażenie regularne?

Wpisz wzorzec bez ukośników w górnym polu, zaznacz potrzebne flagi i wklej tekst. Wszystkie dopasowania od razu zostaną podświetlone w tekście i wypisane z indeksem; poniżej widać, co przechwyciła każda grupa.

Dlaczego \w nie dopasowuje polskich liter?

W JavaScripcie \w oznacza tylko A–Z, a–z, 0–9 i _. Dla liter w dowolnym języku użyj \p{L} z flagą u, np. [\p{L}\d_]+ dla słowa „źdźbło”.

Czym różni się kwantyfikator zachłanny od leniwego?

Kwantyfikatory zachłanne (*, +, {2,}) biorą jak najwięcej tekstu, leniwe ze znakiem zapytania na końcu (*?, +?) – jak najmniej. Dla „<b>x</b>” wzorzec <.+> dopasuje cały tekst, a <.+?> tylko „<b>”.

Jak nazwać grupę przechwytującą?

Użyj (?<nazwa>…). W kodzie odczytasz ją przez match.groups.nazwa, w tekście zastępczym przez $<nazwa>, a we wzorcu przez odwołanie wsteczne \k<nazwa>.

Dlaczego wyszukiwanie zostało przerwane?

Trwało dłużej niż 2 sekundy – zwykle z powodu katastrofalnego backtrackingu przy zagnieżdżonych kwantyfikatorach, np. (\w+)*. Uprość wzorzec: nie zagnieżdżaj kwantyfikatorów, ujednoznacznij alternatywy i zakotwicz go za pomocą ^ i $.

Czy wynik obowiązuje też w PHP lub Pythonie?

Przy prostych wzorcach zwykle tak, ale gwarancja dotyczy tylko JavaScriptu. PHP (PCRE) i Python obsługują dodatkową składnię, np. kwantyfikatory zaborcze czy \A, a Python tradycyjnie zapisuje grupy nazwane jako (?P<nazwa>…).

Źródła i podstawa prawna

Stan na:

Podobne narzędzia