Czym jest to narzędzie?
Wyrażenie regularne (regex) to zwięzły język wzorców służący do wyszukiwania, sprawdzania poprawności i wyodrębniania tekstu: wzorzec adresu e-mail pozwala zweryfikować dane wprowadzone w formularzu, wyrażenie \d{4}-\d{2}-\d{2} służy do wyszukiwania dat, a grupy przechwytujące pozwalają wyodrębnić potrzebne fragmenty. Niemal każdy język programowania i edytor obsługuje wyrażenia regularne.
Ten tester wykorzystuje silnik wyrażeń regularnych JavaScript — ten sam, który działa w Node.js i każdej przeglądarce — dzięki czemu wzorce tworzone tutaj zachowują się identycznie w kodzie JavaScript/TypeScript. Większość wzorców działa również bez zmian w językach Python, Java i Go.
Dlaczego warto go używać?
- Informacja zwrotna na bieżąco: dopasowania są podświetlane na żółto w miarę wpisywania wzorca.
- Grupy przechwytujące wyświetlane dla każdego dopasowania — zobacz dokładnie, co będą zawierać grupy $1 i $2.
- Pełna obsługa opcji: g (wszystkie dopasowania), i (ignorowanie wielkości liter), m (wiele wierszy), s (kropka odpowiada znakowi końca wiersza), u (Unicode).
- Wyświetlaj komunikaty o błędach, gdy wzorzec zawiera błąd składniowy.
- Bezpłatnie i z zachowaniem prywatności — wzór i tekst nigdy nie opuszczają Twojej przeglądarki.
Jak używać
- Wpisz wzór pomiędzy dwoma znakami / (nie musisz samodzielnie stosować znaków escape dla ukośników).
- Zmień ustawienia w małym polu obok drugiego znaku / — domyślna opcja „g” wyszukuje wszystkie pasujące wyniki.
- Wklej poniżej swój tekst testowy.
- Wyniki wyszukiwania są natychmiast podświetlane; poniżej wyświetlana jest lista grup wyników.
- Jeśli wzorzec jest nieprawidłowy, komunikat o błędzie wyjaśnia, na czym polega problem.
Przykład
Wejście
Pattern: (\w+)@(\w+)\.com
Test string: Contact alice@example.com or bob@test.comWynik
✓ 2 matches
#1 groups: $1=alice $2=example
#2 groups: $1=bob $2=testNawiasy tworzą grupy przechwytujące, do których można odwoływać się w operacjach zamiany jako $1 i $2.
Praktyczne wskazówki
- Sprawdzanie poprawności wprowadzonego adresu e-mail? ^[^\s@]+@[^\s@]+\.[^\s@]+$ to wzorzec o szerokim zakresie, który wychwytuje oczywiste literówki, nie odrzucając przy tym poprawnych, choć nietypowych adresów — pełna zgodność z RFC 5322 wymaga użycia biblioteki, a nie jednowierszowego rozwiązania.
- Wyodrębnianie parametrów zapytania z adresu URL: [?&]([^=]+)=([^&]*) z flagą g, a następnie odczytywanie $1/$2 dla każdego dopasowania zamiast ręcznego rozdzielania na znaki & i =.
- Chcesz użyć wzorca w metodzie .replace()? Najpierw przetestuj go tutaj — to, co zostanie podświetlone, to dokładnie to, co zostanie zmienione przez metodę .replace(), łącznie z grupami przechwyconymi.
- Analiza wielowierszowych logów (wyszukiwanie znacznika czasu na początku każdego wiersza)? Dodaj flagę m, aby znaki ^ i $ odnosiły się do początku i końca danego wiersza, a nie do całego ciągu znaków.
- Skopiowałeś wzorzec z języka Python lub PHP i nie pasuje on tutaj? Sprawdź, czy nie ma grup nazwanych (?P<name>...) — w JavaScript używa się (?<name>...), bez litery „P” — ani kwantyfikatorów posiadania (++, *+), które nie istnieją w wyrażeniach regularnych JavaScript.
Narzędzie do testowania wyrażeń regularnych w JavaScript – nie jest to narzędzie ogólnego przeznaczenia
To narzędzie wykorzystuje wbudowany silnik wyrażeń regularnych języka JavaScript — dokładnie tę samą ścieżkę kodową, która odpowiada za wywołania str.match(pattern) lub pattern.test(str) w konsoli przeglądarki lub środowisku Node.js. Różni się to od testowania przy użyciu PCRE (wykorzystywanego przez PHP i domyślnie stosowanego przez wiele „uniwersalnych” testerów wyrażeń regularnych) lub modułu re w Pythonie: W JavaScript nie ma kwantyfikatorów posiadających ani grup atomowych, a nazwane grupy przechwytujące używają notacji (?<name>...) zamiast notacji stosowanej w PCRE/Pythonie (?P<name>...).
Jeśli zamierzasz zastosować wzorzec w JS lub TypeScript — na przykład do walidacji formularza, dopasowywania trasy czy analizowania logów — przetestowanie go tutaj gwarantuje całkowitą zgodność: to, co jest podświetlone na tej stronie, odpowiada dokładnie temu, co dopasowuje funkcja `RegExp(pattern, flags)` w czasie wykonywania.
Jak to się wpisuje w rzeczywiste procesy robocze
Test wyrażenia regularnego rzadko przeprowadza się w oderwaniu od kontekstu. Typowa sekwencja działań wygląda następująco: najpierw sprawdź poprawność wzorca tutaj, następnie uruchom właściwą metodę .replace() w swoim kodzie, a na koniec porównaj tekst przed i po zmianie, aby upewnić się, że zamiana przebiegła zgodnie z oczekiwaniami i nie spowodowała żadnych niepożądanych skutków.
Dane ustrukturyzowane wyodrębniane za pomocą grup przechwytywania są często bezpośrednio zapisywane w formacie JSON — sformatuj wyodrębniony wynik, aby sprawdzić, czy został przetworzony zgodnie z oczekiwaniami.
Najczęściej zadawane pytania
Jakiego rodzaju wyrażenia regularnego używa to narzędzie testujące?
JavaScript (ECMAScript) – silnik działający w każdej przeglądarce oraz w środowisku Node.js. Podstawowa składnia jest przenośna, ale niektóre funkcje różnią się w zależności od języka — np. obsługa lookbehind oraz składnia grup nazwanych różnią się w językach Python i Java.
Dlaczego mój wzorzec wyszukuje tylko pierwsze dopasowanie?
Brakuje flagi g (globalnej). Bez flagi g wyrażenie regularne zatrzymuje się po pierwszym dopasowaniu. W tym narzędziu domyślnie ustawiona jest flaga g — sprawdź, czy jej nie usunąłeś.
Dlaczego . nie odpowiada moim podziałom wierszy?
Domyślnie znak . odpowiada dowolnemu znakowi z wyjątkiem znaków końca linii. Aby znak . odpowiadał również znakom końca linii, należy dodać flagę s (dotall) lub użyć [\s\S] jako uniwersalnej alternatywy.
Co oznaczają wyniki z grupy przechwytywania?
Każda para nawiasów w wzorcu przechwytuje tekst, z którym się dopasowała. $1 to pierwsza grupa, $2 to druga i tak dalej — to właśnie do nich odwołujesz się w operacjach zamiany i kodzie służącym do wyodrębniania danych.
Dlaczego moje wyrażenie regularne działa wolno lub zawiesza się?
Prawdopodobnie doszło do katastrofalnego cofania się, spowodowanego zagnieżdżonymi kwantyfikatorami, takimi jak (a+)+, w przypadku niepasujących danych wejściowych. Należy przeredagować wzorzec, aby uniknąć niejednoznacznych powtórzeń. Aby zapewnić płynne działanie, narzędzie to ogranicza liczbę dopasowań do 1000.