TanodTools
PL

Tester wyrażeń regularnych

Wypróbuj wyrażenie regularne na przykładowym tekście i zobacz każde dopasowanie, jego grupy przechwytujące oraz wynik zamiany.

Działa w całości w Twojej przeglądarce

Flagi

Dopasowania w tekście

  
#PozycjaDopasowanieGrupy

Składnia wyrażeń regularnych JavaScript (ECMAScript) w zakresie, w jakim obsługuje ją Twoja przeglądarka. Tekst do 5 MB; pierwsze 1000 dopasowań jest wypisanych i podświetlonych. Wzorzec działający dłużej niż 2 sekundy jest zatrzymywany.

Jak przetestować wyrażenie regularne

  1. Wpisz wzorzec między ukośnikami i zaznacz potrzebne flagi, na przykład g dla wszystkich dopasowań lub i, aby ignorować wielkość liter.
  2. Wklej tekst testowy. Dopasowania są podświetlane w trakcie pisania, a tabela wymienia każde z nich wraz z pozycją i grupami przechwytującymi.
  3. Aby sprawdzić podstawienie, wpisz zamiennik, taki jak $2-$1 lub $<year>, i odczytaj wynik pod nim.

Bezpieczne testowanie wzorców

Tester buduje z Twojego wzorca i flag obiekt JavaScript RegExp i uruchamia go w wątku roboczym w tle, tym samym silniku, którego użyje Twój kod w tej przeglądarce. Dopasowania wracają z pozycją początkową i każdą grupą przechwytującą, a strona rysuje je na tekście z naprzemiennym podświetleniem, aby sąsiednie dopasowania pozostały rozróżnialne. Puste dopasowanie, takie jak to, które mogą dać \b lub a*, jest pokazane jako cienka kreska.

Uruchamianie wzorca w wątku roboczym ma znaczenie, ponieważ wyrażenie regularne może wymagać czasu wykładniczego. Jeśli wzorzec nadal działa po 2 sekundach, wątek jest zatrzymywany i zamiast zawieszonej karty dostajesz komunikat. To samo zabezpieczenie chroni narzędzie Znajdź i zamień.

Pozycje są liczone w jednostkach kodu UTF-16, tak jak liczą ciągi znaków w JavaScripcie: emoji lub inny znak spoza podstawowej płaszczyzny zajmuje dwie. Lista pokazuje pierwsze 1000 dopasowań; łączna liczba nad nią obejmuje wszystkie.

Wskazówki

Najczęstsze pytania

Jakiej odmiany regex używa to narzędzie?

Odmiany JavaScript, uruchamianej przez silnik Twojej przeglądarki, więc wyniki są dokładnie takie, jakie daje RegExp w przeglądarce lub w Node.js. Większość codziennej składni jest wspólna z PCRE, Pythonem i Javą, ale niektóre funkcje się różnią: kwantyfikatory zaborcze (possessive) i grupy atomowe nie są obsługiwane, a lookbehind, grupy nazwane i flaga v wymagają aktualnej przeglądarki.

Dlaczego pokazane jest tylko jedno dopasowanie?

Bez flagi g (global) wyrażenie regularne JavaScript znajduje tylko pierwsze dopasowanie, a zamiana zmienia tylko pierwsze wystąpienie. Zaznacz g, aby znaleźć wszystkie. Tester dokładnie odzwierciedla język, więc to, co widzisz, jest tym, co zrobi Twój kod.

Co robią flagi?

g znajduje wszystkie dopasowania, i ignoruje wielkość liter, m sprawia, że ^ i $ pasują na podziałach wierszy, s pozwala kropce . pasować do podziałów wierszy, u włącza pełną obsługę Unicode, v to nowszy tryb Unicode z operacjami na zbiorach, y (sticky) dopasowuje tylko w bieżącej pozycji, a d zapisuje początek każdej grupy, z czego tester i tak korzysta przy pozycjach grup.

Jak używać grup w zamienniku?

$1, $2 i dalej wstawiają grupy numerowane, $<name> wstawia grupę nazwaną, $& wstawia całe dopasowanie, $` i $' wstawiają tekst przed nim i po nim, a $$ zapisuje dosłowny znak dolara.

Dlaczego mój wzorzec zatrzymał się z komunikatem „trwało zbyt długo”?

Niektóre wzorce, takie jak ^(a+)+$ na długim ciągu liter a, który nie kończy się tak, jak oczekuje wzorzec, zmuszają silnik do wypróbowania ogromnej liczby sposobów dopasowania. Nazywa się to katastrofalnym nawrotem (catastrophic backtracking). Tester uruchamia każdy wzorzec w wątku roboczym w tle i zatrzymuje go po 2 sekundach, aby strona pozostała użyteczna. Przepisz zagnieżdżone powtórzenia, takie jak (a+)+, na a+.

Czy mój tekst jest dokądś wysyłany?

Nie. Wzorzec i tekst zostają w Twojej przeglądarce; dopasowanie odbywa się na Twoim urządzeniu i nic nie jest przesyłane ani zapisywane.