CodeKitHub
Polski
Narzędzia tekstowe

Tester wyrażeń regularnych online

Wpisz wyrażenie regularne, a pasujące fragmenty w tekście testowym zostaną natychmiast podświetlone podczas wpisywania. Grupy przechwytujące są wyświetlane osobno dla każdego dopasowania, a narzędzie obsługuje wszystkie flagi wyrażeń regularnych w JavaScript. Doskonale nadaje się do tworzenia i debugowania wzorców przed umieszczeniem ich w kodzie.

//

    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ć

    1. Wpisz wzór pomiędzy dwoma znakami / (nie musisz samodzielnie stosować znaków escape dla ukośników).
    2. Zmień ustawienia w małym polu obok drugiego znaku / — domyślna opcja „g” wyszukuje wszystkie pasujące wyniki.
    3. Wklej poniżej swój tekst testowy.
    4. Wyniki wyszukiwania są natychmiast podświetlane; poniżej wyświetlana jest lista grup wyników.
    5. 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.com

    Wynik

    ✓ 2 matches
    #1 groups: $1=alice  $2=example
    #2 groups: $1=bob  $2=test

    Nawiasy 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.

    Porównanie tekstów · Formatator JSON

    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.

    Powiązane narzędzia