Przejdź do treści

Testuj wyrażenia regularne

Sprawdź wyrażenie regularne JavaScript na własnym tekście: dopasowania są podświetlane na bieżąco, widzisz grupy przechwytujące i prosty opis działania. Wszystko w przeglądarce.

Składnia regex JavaScript (ECMAScript)Ten sam silnik, którego używa przeglądarka, Node.js i Deno
//g

$1 lub $<name> wstawia grupę, $& całe dopasowanie, $` i $' tekst przed i po nim, $$ znak dolara.

Dopasowania i grupy przechwytujące pojawią się tutaj.

Działa w przeglądarce · bez przesyłania na serwerJak to działa

Jak korzystać: Tester regex

  1. 1

    Wpisz wzorzec

    Wpisz wyrażenie regularne bez ukośników; flagi ustawisz przełącznikami pod nim.

  2. 2

    Dodaj tekst testowy

    Wklej tekst do przeszukania; dopasowania są podświetlane i wypisywane razem z grupami przechwytującymi na bieżąco.

  3. 3

    Sprawdź objaśnienie

    Otwórz kartę „Objaśnienie”, aby przeczytać prosty opis każdego tokena i zobaczyć, co wzorzec naprawdę robi.

  4. 4

    Zobacz podgląd zamiany

    Wpisz tekst zamiany z użyciem $1 lub $<name>, aby zobaczyć wynik, a potem skopiuj kod z karty „Kod”.

Limity i Pro

Za darmo i bez rejestracji: do 100 000 policzonych dopasowań, 2000 podświetlonych i 200 wypisanych w tabeli. Podświetlanie obejmuje teksty testowe do 200 000 znaków, a każde uruchomienie jest przerywane po 1,5 sekundy.

Pro usuwa reklamy; tester działa tak samo w każdym planie. Zobacz Pro

O narzędziu: Tester regex

Ten tester uruchamia Twój wzorzec w silniku wyrażeń regularnych JavaScript (ECMAScript), wbudowanym w przeglądarkę. Używają go też Node.js, Deno, Bun i każda strona internetowa, więc to, co pasuje tutaj, będzie pasować w Twoim kodzie. Wpisz wzorzec i tekst testowy, a każde dopasowanie zostanie podświetlone w trakcie pisania. Zobaczysz też tabelę pozycji, numerowane grupy przechwytujące i grupy nazwane, a po włączeniu flagi d także początek i koniec każdej grupy.

Możesz przełączać wszystkie osiem flag: g dla wszystkich dopasowań, i do ignorowania wielkości liter, m, aby ^ i $ działały w każdym wierszu, s, aby kropka pasowała także do końców wierszy, u dla pełnego Unicode i sekwencji \p{…}, v dla zbiorów Unicode z przecięciem i odejmowaniem w nawiasach kwadratowych, y dla dopasowania lepkiego oraz d dla indeksów. Pole „Zamień na” pokazuje podgląd działania String.prototype.replace z użyciem $1, $<name>, $& i pozostałych znaczników podstawiania, a karta „Kod” podaje gotowe fragmenty z literałem, matchAll i RegExp().

Karta „Objaśnienie” dzieli wzorzec na tokeny i prostym językiem opisuje, co robi każdy z nich: grupy, asercje wyprzedzające i wsteczne, klasy znaków, kwantyfikatory oraz to, czy są zachłanne, czy leniwe. „Ściągawka” wstawia popularne tokeny w miejscu kursora.

Dopasowywanie działa w tle, w Web Workerze, z limitem 1,5 sekundy. Wzorzec z katastrofalnym nawrotem, na przykład (a+)+b dla długiego ciągu liter a, zostanie zatrzymany z wyjaśnieniem, zamiast zawieszać kartę. Wzorce napisane dla PCRE, Pythona lub .NET mogą wymagać zmian: kwantyfikatory zaborcze, grupy atomowe, rekurencja oraz \A i \Z nie istnieją w JavaScript.

Prywatność

Wzorce i teksty testowe zostają w tej karcie przeglądarki: dopasowywanie odbywa się w lokalnym Web Workerze, a nic, co wpiszesz, nie jest przesyłane, zapisywane w logach ani przechowywane, więc możesz bezpiecznie testować na prawdziwych wierszach logów czy danych klientów.

Funkcje

Prawdziwy silnik JS

Dopasowuje dokładnie jak RegExp w przeglądarkach i Node.js, w tym zbiory z flagą v i grupy nazwane.

Objaśnienie token po tokenie

Każda grupa, klasa, kotwica i kwantyfikator opisane prostym językiem.

Ochrona przed nawrotami

Dopasowywanie działa w workerze z limitem 1,5 sekundy, więc zły wzorzec nie zawiesi strony.

Tester regex: najczęstsze pytania

Jakiego dialektu regex używa ten tester?
Dialektu JavaScript, zdefiniowanego w standardzie ECMAScript i zaimplementowanego w Twojej przeglądarce. Obsługuje asercje wsteczne, grupy nazwane, sekwencje właściwości Unicode i flagę v, ale nie funkcje PCRE, takie jak kwantyfikatory zaborcze, grupy atomowe, rekurencja czy warunki. Składnię Pythona (?P<name>…) zapisz tutaj jako (?<name>…). Wyniki zgadzają się z Node.js i Deno na tej samej wersji silnika.
Dlaczego mój wzorzec znajduje tylko pierwsze dopasowanie?
Bez flagi g JavaScript zatrzymuje się po pierwszym dopasowaniu: exec i match zwracają jeden wynik, a replace zmienia tylko pierwsze wystąpienie. Włącz g, aby znaleźć i zamienić wszystkie dopasowania. Flaga y (lepka) działa inaczej: dopasowuje tylko w miejscu, w którym zakończyło się poprzednie dopasowanie, co przydaje się w tokenizerach.
Czym jest katastrofalny nawrót?
Gdy wzorzec może dopasować ten sam tekst na wiele sposobów, jak przy zagnieżdżonych kwantyfikatorach (a+)+ lub (.*)*, nieudane dopasowanie zmusza silnik do sprawdzenia każdej kombinacji, a ich liczba rośnie wykładniczo z długością tekstu. Tutaj kończy się to po 1,5 sekundy z ostrzeżeniem. Napraw to, czyniąc alternatywy rozłącznymi, na przykład [^,]* zamiast .* przed przecinkiem.
Jak użyć grup przechwytujących w zamianie?
Wpisz $1, $2 i kolejne dla grup numerowanych albo $<name> dla grupy nazwanej, na przykład (?<year>\d{4}). $& wstawia całe dopasowanie, $` tekst przed nim, $' tekst po nim, a $$ daje zwykły znak dolara. Przycisk „Wypróbuj przykład” wczytuje wzorzec daty, który w ten sposób zmienia kolejność roku, miesiąca i dnia.
Kiedy potrzebuję flagi u lub v?
Użyj u, gdy tekst zawiera emoji lub inne znaki spoza podstawowej płaszczyzny wielojęzycznej, aby kropka i kwantyfikatory traktowały je jak jeden znak, oraz by korzystać z właściwości Unicode w stylu \p{L}. Nowsza flaga v obejmuje wszystko, co u, i dodaje operacje na zbiorach w nawiasach, na przykład [\p{L}--[a-z]] dla liter spoza ASCII. Tych flag nie można łączyć.