Tester regex

Testuj wzorce na prawdziwym tekście, prosto w przeglądarce.

Dopasowania

  
#TypWartośćPozycja

Działa w przeglądarce. Nic, co wpiszesz, nie jest nigdzie wysyłane.

Jak przetestować wyrażenie regularne

  1. Wpisz albo wklej swój wzorzec i wybierz potrzebne flagi.
  2. Wklej tekst, na którym chcesz sprawdzić dopasowanie.
  3. Sprawdź podświetlone dopasowania, tabelę grup albo podgląd zamiany.

Ściąga ze składni regex

WzorzecDopasowuje
\dDowolną cyfrę od 0 do 9
\wDowolną literę, cyfrę albo znak _
\sDowolny biały znak
+Jeden lub więcej poprzednich znaków
*Zero lub więcej poprzednich znaków
?Zero albo jeden, albo zmienia kwantyfikator na leniwy
^ i $Początek i koniec tekstu albo linii

Funkcje regex w JavaScript

FunkcjaSkładniaUwaga
Grupy nazwane(?<name>...)Obsługiwane od ES2018
Lookbehind(?<=...) i (?<!...)Obsługiwane od ES2018
Tryb Unicodeflaga uPotrzebny do sekwencji właściwości Unicode, jak \p{Letter}
Bez rozróżniania wielkości literflaga iTa sama zasada co w większości innych języków

Wskazówki do pisania wzorców

  • Poprzedź znaki specjalne, takie jak . ( ) [ ], ukośnikiem wstecznym, gdy chodzi ci o dosłowny znak.
  • Użyj grupy nieprzechwytującej (?:...) do grupowania, gdy nie potrzebujesz później odwołać się do tego dopasowania.
  • Zachłanne kwantyfikatory dopasowują jak najwięcej. Dodaj po nich ?, na przykład +?, aby uzyskać leniwe dopasowanie, które zatrzymuje się przy pierwszej możliwej okazji.
  • Testuj przypadki brzegowe, na przykład pusty tekst albo dodatkowe białe znaki, a nie tylko tekst, który spodziewasz się dopasować.

Tester regex: najczęstsze pytania

Dlaczego mój wzorzec przestał odpowiadać?

Niektóre wzorce mogą wykonywać nawroty (backtracking) wykładniczo długo na określonym tekście. Dopasowywanie działa w tle, w wątku roboczym z limitem 1,5 sekundy, więc wzorzec, który się zapętla, zostaje zatrzymany zamiast zawieszać kartę.

Co oznaczają flagi?

g znajduje każde dopasowanie zamiast tylko pierwszego, i ignoruje wielkość liter, m sprawia, że ^ i $ dopasowują się do każdej linii osobno, s pozwala kropce dopasować znak nowej linii, u włącza pełny tryb Unicode, y zakotwicza dopasowanie do ostatniego indeksu, a d dodaje pozycje początku i końca każdego dopasowania.

Czy pole zamiany zmienia mój testowany tekst?

Nie. Pokazuje wynik, jaki dałoby String.replace, w osobnym polu, więc wpisany testowany tekst zostaje dokładnie taki, jaki był.

Czy obsługiwane są nazwane grupy przechwytujące?

Tak. Zapisz grupę jako (?<name>...), a jej nazwa pojawi się obok numeru grupy w tabeli dopasowań.

Czy mój tekst jest gdzieś wysyłany?

Nie. Dopasowywanie działa w wątku roboczym wewnątrz twojej karty przeglądarki, a nic, co wpiszesz, nie opuszcza strony.

Z jakiego wariantu regex to korzysta?

Z natywnego silnika JavaScript RegExp twojej przeglądarki, tego samego, który uruchamia twoje wzorce w aplikacji webowej albo skrypcie Node.js.

Czym jest katastrofalny backtracking?

To sytuacja, w której wzorzec z zagnieżdżonymi, powtarzającymi się grupami, na przykład (a+)+b, potrzebuje wykładniczo więcej czasu, żeby zawieść, gdy dane wejściowe rosną nawet o jeden znak. Limit 1,5 sekundy w wątku roboczym wyłapuje taki wzorzec, zanim zawiesi stronę.

Czy ^ i $ mogą dopasowywać początek i koniec każdej linii, a nie tylko całego tekstu?

Tak, włącz flagę m (wieloliniowy). Bez niej ^ i $ dopasowują tylko sam początek i koniec całego testowanego tekstu.

Podobne narzędzia