Darmowy konwerter

Wyrażenie regularne Tester

Natychmiast testuj i debuguj wyrażenia regularne w przeglądarce. Wyróżniaj dopasowania, przeglądaj grupy przechwytywania i korzystaj z trybu zastępowania — bezpłatnego i prywatnego.

//g
Flagi:

O tym narzędziu

Wyrażenia regularne to język specyficzny dla domeny, służący do dopasowywania wzorców w tekście. Są częścią komputerów od 1968 roku, a obecnie są wbudowane w każdy nowoczesny język programowania, edytor tekstu i narzędzie wyszukiwania z wiersza poleceń. Składnia jest zwięzła, ale podatna na błędy: małe zmiany powodują subtelne różnice w zachowaniu dopasowania, a złożone wyrażenia szybko stają się nieczytelne. Tester pokazujący dopasowania w czasie rzeczywistym podczas edycji wzorca to najskuteczniejszy sposób na opracowanie i weryfikację wyrażenia regularnego.

Ten tester działa w Twojej przeglądarce przy użyciu silnika regex JavaScript (tego samego, którego używa Twoja aplikacja, jeśli działa w przeglądarce). Wzorce i tekst testowy aktualizują się reaktywnie: każda zmiana powoduje ponowne uruchomienie dopasowania. Grupy dopasowań są podświetlane, przechwycone grupy są wyświetlane, a flagi (bez uwzględniania wielkości liter, wielowierszowe i globalne) są udostępniane do testowania.

Składnia wyrażeń regularnych różni się nieznacznie w zależności od silnika. JavaScript jest zgodny ze specyfikacją ECMAScript; Python, PCRE (używany w PHP i wielu innych), Java i Go mają swoje własne dialekty z nakładającymi się, ale nie identycznymi funkcjami. Opracowane tutaj wzorce wykorzystują składnię ECMAScript; przenośność między silnikami wymaga sprawdzenia dokumentacji każdego celu.

Dlaczego warto używać testera Regex

Błędy wyrażeń regularnych są niezwykle trudne do debugowania po wdrożeniu. Wzorzec, który wygląda rozsądnie, może pasować bardziej lub mniej niż zamierzono, zawieść w przypadkach brzegowych lub powodować katastrofalne cofanie się w przypadku niektórych danych wejściowych. Interaktywne testowanie wzorców na podstawie reprezentatywnych danych wejściowych wyłapuje problemy przed przeglądem kodu i produkcją.

Wzory również korzystają z dokumentacji. Wyświetlenie wyrażenia regularnego obok danych wejściowych, które powinno pasować, i danych wejściowych, do których nie powinno pasować, wyraźnie wskazuje na intencję. Przyszli opiekunowie (w tym także Ty za sześć miesięcy) bardziej cenią udokumentowane przypadki testowe niż sprytne, jednowierszowe sformułowania.

Jak używać

Wpisz wzór, wpisz testowe dane wejściowe, zobacz podświetlone mecze na żywo.

  1. Wprowadź swój wzór: Wpisz wzór wyrażenia regularnego w polu wzorca. Działają zarówno dosłowne wyrażenia regularne (/wzorzec/flagi), jak i formularze zawierające wyłącznie wzorce; flagi można ustawić poprzez wejście flags.
  2. Dodaj dane wejściowe testowe: Wklej przykładowy tekst, który powinien pasować do wzorca (a najlepiej także tekst, do którego nie powinien pasować). Tester uruchamia wzorzec na podstawie danych wejściowych i podświetla dopasowania.
  3. Ustaw flagi: Typowe flagi: g (globalne, znajdź wszystkie dopasowania), i (wielkość liter nie ma znaczenia), m (wiele linii, początek/koniec linii dopasowania ^ i $), s (kropka, . dopasowuje nową linię), u (Unicode).
  4. Sprawdź wyniki: Każde dopasowanie jest podświetlone na wejściu. Grupy przechwytywania pojawiają się na liście z indeksem grupy i wartością. Tester pokazuje także liczbę dopasowań oraz ewentualne błędy kompilacji we wzorcu.

Typowe przypadki użycia

Szczegóły techniczne

Wyrażenie regularne JavaScript jest zgodne ze specyfikacją ECMAScript. Główne cechy: klasy znaków ([abc], [^abc]), kwantyfikatory (*, +, ?, {n,m}), alternacja (|), grupowanie ((...)), grupy przechwytujące i nieprzechwytujące, lookahead i lookbehind (nowoczesne silniki), referencje wsteczne, nazwane grupy, ucieczki właściwości Unicode (z flagą u) i standardowy zestaw sekwencji ucieczki.

Ważne różnice w stosunku do PCRE i Pythona: obsługa podglądu wstecz została wprowadzona niedawno w JavaScript (2018+); nazwane grupy używają składni (?<nazwa>...); niektóre ucieczki Unicode wymagają poprawnego działania flagi u. Wzorce przeznaczone do użytku w różnych językach należy sprawdzić w dokumentacji każdego celu.

Wydajność: silniki wyrażeń regularnych oparte na śledzeniu wycofywania (większość z nich zawiera JavaScript) mogą powodować katastrofalne wycofywanie się w przypadku pewnych patologicznych wzorców. Testy, które zawieszają tester, są oznaką, że wzorzec wymaga uproszczenia — zazwyczaj poprzez uniknięcie zagnieżdżonych kwantyfikatorów i niejednoznacznej naprzemienności.

Najlepsze praktyki

Często zadawane pytania

Jaki smak wyrażenia regularnego obsługuje to narzędzie?
Korzysta z wbudowanego silnika RegExp języka JavaScript, który obsługuje standardową składnię, w tym lookahead, lookbehind (w nowoczesnych przeglądarkach), nazwane grupy przechwytywania i zmiany właściwości Unicode.
Czy mogę przetestować zamienniki wyrażeń regularnych?
Tak. Przejdź do trybu Zamień, aby wprowadzić wzór zamiany. Możesz użyć $1, $2 itd. do przechwytywania odniesień wstecznych do grup i $<name> do nazwanych grup.
Dlaczego moje wyrażenie regularne pasuje tutaj inaczej niż w Pythonie/PHP?
Różne języki programowania mają nieco inne silniki wyrażeń regularnych. JavaScript nie obsługuje kwantyfikatorów dzierżawczych ani niektórych funkcji specyficznych dla PCRE. Podstawowa składnia (klasy znaków, kwantyfikatory, grupy) jest taka sama we wszystkich językach.
Czy narzędzie zapisuje moje wzorce wyrażeń regularnych?
Nie. Nic nie jest zapisywane ani przesyłane. Narzędzie działa całkowicie w przeglądarce. Możesz dodawać zakładki lub udostępniać wzorce, kopiując ciąg wyrażeń regularnych.
Jak dopasować dosłowny znak specjalny?
Uniknij tego ukośnikiem odwrotnym. Aby dopasować dosłowną kropkę: \. Aby dopasować dosłowny ukośnik odwrotny: \\. Wewnątrz klas znaków […] większość znaków specjalnych traci swoje znaczenie.
Czy tester działa na serwerze?
Nie. Kompilacja i dopasowywanie wzorców odbywa się w przeglądarce przy użyciu natywnego obiektu RegExp.
Czy mogę testować wzorce dla silników innych niż JavaScript?
Głównie. W przypadku prostych wzorców główne silniki są zgodne. W przypadku zaawansowanych funkcji (lookbehind, grupy atomowe, kwantyfikatory dzierżawcze, zmiany właściwości Unicode) potwierdź je w dokumentacji silnika docelowego.
Czy obsługuje bardzo duże dane wejściowe?
Do kilku megabajtów działa bez problemu. Większe dane wejściowe mogą spowolnić lub zawiesić przeglądarkę, szczególnie w przypadku wzorców podatnych na cofanie się.