Tester regex
Testuj wzorce na prawdziwym tekście, prosto w przeglądarce.
| # | Typ | Wartość | Pozycja |
|---|
Działa w przeglądarce. Nic, co wpiszesz, nie jest nigdzie wysyłane.
- Podświetlanie dopasowań na żywo
- Grupy nazwane i numerowane
- Bezpiecznie działa w wątku roboczym
Jak przetestować wyrażenie regularne
- Wpisz albo wklej swój wzorzec i wybierz potrzebne flagi.
- Wklej tekst, na którym chcesz sprawdzić dopasowanie.
- Sprawdź podświetlone dopasowania, tabelę grup albo podgląd zamiany.
Ściąga ze składni regex
| Wzorzec | Dopasowuje |
|---|---|
| \d | Dowolną cyfrę od 0 do 9 |
| \w | Dowolną literę, cyfrę albo znak _ |
| \s | Dowolny 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
| Funkcja | Składnia | Uwaga |
|---|---|---|
| Grupy nazwane | (?<name>...) | Obsługiwane od ES2018 |
| Lookbehind | (?<=...) i (?<!...) | Obsługiwane od ES2018 |
| Tryb Unicode | flaga u | Potrzebny do sekwencji właściwości Unicode, jak \p{Letter} |
| Bez rozróżniania wielkości liter | flaga i | Ta 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.