/ NARZĘDZIE · Regex

Regex Tester

Testuj wyrażenia regularne z żywym podświetlaniem wszystkich dopasowań, grupami numerowanymi i nazwanymi, trybem zamiany oraz panelem wyjaśnień token po tokenie. Silnik JavaScript (RegExp) w Web Workerze z ochroną przed ReDoS — wszystko lokalnie w przeglądarce.

Przykłady
Tekst testowy 0 dopasowań
Dopasowania i grupy
Zamiana
Wyjaśnienie wzorca

Silnik: JavaScript RegExp (flavor ECMAScript)

Dopasowania liczy natywny silnik RegExp Twojej przeglądarki, uruchamiany w Web Workerze. To ten sam flavor, którego użyjesz w kodzie JS — ale różni się od PCRE (PHP, Perl, Python re):

  • Brak rekurencji (?R), atomic groups (?>…) i warunków (?(1)…).
  • Grupy nazwane zapisujemy jako (?<name>…), a odwołania jako \k<name> (nie (?P<name>)).
  • Kotwice \A \Z \z nie istnieją — użyj ^ $ (z flagą m działają per linia).
  • Flaga d (hasIndices) dodaje pozycje grup; u włącza pełny tryb Unicode i \u{…}.
Ściąga składni

Kotwice

^
początek tekstu / linii (m)
$
koniec tekstu / linii (m)
\b
granica słowa
\B
brak granicy słowa

Klasy znaków

.
dowolny znak (bez \n)
\d \D
cyfra / nie-cyfra
\w \W
znak słowa / nie-słowa
\s \S
biały / nie-biały znak
[a-z]
zakres; [^…] negacja

Kwantyfikatory

*
0 lub więcej
+
1 lub więcej
?
0 lub 1 (opcjonalnie)
{n,m}
od n do m razy
*?
leniwie (jak najmniej)

Grupy

(…)
grupa przechwytująca
(?:…)
nieprzechwytująca
(?<n>…)
nazwana
\1 \k<n>
odwołanie wstecz
a|b
alternacja

Lookaround

(?=…)
lookahead dodatni
(?!…)
lookahead ujemny
(?<=…)
lookbehind dodatni
(?<!…)
lookbehind ujemny

Flagi

g
wszystkie dopasowania
i
ignoruj wielkość liter
m
^ $ per linia
s
. łapie nową linię
u y d
unicode / sticky / indeksy
/ FAQ

Często zadawane pytania

Czy narzędzie wysyła mój tekst na serwer?

Nie. Cały tester wyrażeń regularnych działa w czystym JavaScript w Twojej przeglądarce — dopasowanie liczy się w Web Workerze na Twoim urządzeniu. Nic nie jest nigdzie wysyłane, nie ma backendu ani telemetrii, a ostatni wzorzec, flagi i tekst zapisują się tylko lokalnie w localStorage.

Jaki silnik wyrażeń regularnych jest używany?

Natywny silnik JavaScript (RegExp) Twojej przeglądarki. To flavor ECMAScript, który różni się od PCRE: nie ma rekurencji ((?R)), atomic groups ani warunków ((?(1)…)), a nazwane grupy zapisujemy jako (?<name>…) z odwołaniami \k<name>. Flaga d (hasIndices) dodaje pozycje grup.

Jak narzędzie chroni przed zawieszeniem (ReDoS)?

Dopasowanie uruchamiamy w osobnym Web Workerze, a wątek główny pilnuje go watchdogiem. Gdy patologiczny wzorzec (np. (a+)+$ na długim wejściu) nie zwróci wyniku w budżecie czasu, robimy worker.terminate(), pokazujemy ostrzeżenie o możliwym ReDoS i przy kolejnym uruchomieniu tworzymy nowego workera. Karta pozostaje responsywna.

Czy obsługiwane są grupy nazwane i pozycje dopasowań?

Tak. Lista dopasowań pokazuje pełne trafienie oraz pozycje start/koniec, a dla każdej grupy — numerowanej i nazwanej (?<name>…) — jej wartość. Gdy przeglądarka wspiera flagę d (hasIndices), pokazujemy też pozycje poszczególnych grup; bez niej działa fallback bez pozycji grup.