Tester wyrażeń regularnych
Local only — nothing is uploaded unless you save or share it.
Tester wyrażeń regularnych, uruchamianych bezpiecznie na twoim własnym tekście.
- Wpisz swój wzorzec i wybierz potrzebne flagi
- Wklej tekst, na którym chcesz go sprawdzić
- Przeczytaj podświetlone dopasowania i grupy przechwytujące poniżej
Zapisz to narzędzie
Miej Tester wyrażeń regularnych pod ręką
Użyj menu Udostępnij w przeglądarce, a potem „Dodaj do ekranu głównego”.
O tym narzędziu
Wyrażenia regularne są zwięzłe i bezlitosne, a zwykły sposób nauki jednego z nich to zmienić znak i zobaczyć, co się stanie. Ten tester czyni tę pętlę natychmiastową: dopasowania podświetlają się w trakcie pisania, każda grupa przechwytująca wypisana jest wraz z wartością, a błędy składni zgłaszane są zwykłymi słowami, zamiast po cichu zwracać nic. Korzysta z javascriptowego silnika wyrażeń regularnych twojej przeglądarki, więc to, co widzisz tutaj, jest dokładnie tym, co zrobi twój kod, łącznie z zachowaniem flag i grupami nazwanymi. Jedna rzecz warta wiedzy: wzorzec uruchamiany jest w wątku w tle, a nie na stronie. Pewne wzorce, zwłaszcza zagnieżdżone powtórzenie w rodzaju klasycznego powtórzonego a-plus w nawiasach, potrafią przy niektórych danych zająć wykładniczo długi czas, a JavaScript nie daje żadnego sposobu na przerwanie raz uruchomionego wyrażenia. Większość testerów w sieci zamraża wtedy kartę. Tutaj wątek w tle jest po prostu porzucany, a tobie mówi się, że wzorzec trwał zbyt długo — co jest też pożyteczną przestrogą, że ten sam wzorzec zablokowałby twój serwer.
Najczęstsze pytania
Która odmiana wyrażeń regularnych to jest?
JavaScript, z użyciem silnika twojej własnej przeglądarki. To znaczy, że widzisz tu dokładnie to, co zrobi twój kod w JavaScripcie albo TypeScripcie. Wzorce pisane pod PCRE, Pythona albo Go mogą zachowywać się inaczej, zwłaszcza wokół lookbehind i sekwencji właściwości Unicode.
Czy mogę powierzyć temu testerowi powolny wzorzec?
Tak, i to jest powód, dla którego istnieje w tym kształcie. Tester wyrażeń regularnych uruchamiający wzorzec na stronie da się zawiesić katastrofalnym nawracaniem — wzorcem, który na krótkim ciągu zajmuje minuty. Tutaj twój działa w workerze z limitem czasu, więc rozbiegany wzorzec jest zgłaszany, a nie zamraża karty.
Co oznacza przekroczenie czasu?
Twój wzorzec zbyt długo się nie kończył. Zagnieżdżone powtórzenie w rodzaju (a+)+ potrafi przy pewnych danych zająć wykładniczo długi czas, a problem ten znany jest jako katastrofalne nawracanie. To prawdziwa przestroga: ten sam wzorzec na produkcji zawiesiłby żądanie, a nie tylko kartę przeglądarki.
Dlaczego mój wzorzec wiesza inne testery, a tego nie?
Bo dopasowanie działa tutaj w wątku w tle. JavaScript nie potrafi przerwać działającego wyrażenia, więc tester liczący na stronie nie ma jak się pozbierać i karta zamarza. Wątek w tle można po prostu porzucić.
Czym różni się flaga global od braku flagi?
Bez flagi global zwracane jest tylko pierwsze dopasowanie. Z nią dopasowywanie biegnie przez cały ciąg. Zmienia też sposób, w jaki silnik śledzi pozycję między wywołaniami, co bywa częstym źródłem zaskakujących zachowań przy ponownym użyciu obiektu wyrażenia.
Czy obsługiwane są nazwane grupy przechwytujące?
Tak. Grupy zapisane jako (?<nazwa>...) wypisywane są wraz z nazwami obok grup numerowanych, żebyś mógł potwierdzić, że przechwytują to, czego oczekujesz, zanim wepniesz je w kod.
Pomóż ulepszyć to narzędzie
Znalazłeś błąd, chcesz zmiany albo brakuje Ci jakiegoś narzędzia?
Masz niewysłaną wiadomość.
Dzięki — mamy to. Odpowiedź znajdziesz w swojej skrzynce.Go to my messages