Przejdź do treści

Darmowy Internetowy Tester i Walidator Regex - Natychmiastowe Testowanie Wzorców

Testuj i waliduj wyrażenia regularne online z podświetlaniem w czasie rzeczywistym. Darmowy tester wzorców regex z walidacją składni, wynikami dopasowań i funkcją zapisu. Przetestuj regex teraz!

Tester Wzorców Regex

Wyniki Dopasowania

Wprowadź wzorzec i tekst testowy, aby zobaczyć wyniki

Zapisz Wzorzec

Zapisane Wzorce

Brak zapisanych wzorców

Przewodnik po Symbolach Regex

.Dopasowuje dowolny znak z wyjątkiem nowej linii
\dDopasowuje dowolną cyfrę (0-9)
\DDopasowuje dowolny znak niebędący cyfrą
\wDopasowuje dowolny znak słowa (a-z, A-Z, 0-9, _)
\WDopasowuje dowolny znak niebędący znakiem słowa
\sDopasowuje dowolny biały znak
\SDopasowuje dowolny znak niebędący białym znakiem
^Dopasowuje początek linii
$Dopasowuje koniec linii
*Dopasowuje 0 lub więcej poprzednich znaków
+Dopasowuje 1 lub więcej poprzednich znaków
?Dopasowuje 0 lub 1 poprzedniego znaku
{n}Dopasowuje dokładnie n poprzednich znaków
{n,}Dopasowuje co najmniej n poprzednich znaków
{n,m}Dopasowuje między n a m poprzednich znaków
[abc]Dopasowuje dowolny znak z nawiasów
[^abc]Dopasowuje dowolny znak spoza nawiasów
(abc)Grupuje wiele tokenów i przechwytuje dopasowanie
a|bDopasowuje a lub b
\bDopasowuje granicę słowa
Kalkulator załadunku...
📚

Dokumentacja

Czym jest tester wyrażeń regularnych

Tester wyrażeń regularnych to narzędzie, które sprawdza wyrażenie regularne względem fragmentu tekstu i pokazuje, co ono dopasowuje. Wyrażenie regularne, czyli regex, to krótki ciąg znaków opisujący wzorzec w tekście, na przykład „trzy cyfry z rzędu” lub „dowolne słowo zaczynające się wielką literą”. Ten walidator wyrażeń regularnych pozwala wpisać wzorzec i tekst testowy, a następnie od razu zobaczyć wyróżnione dopasowania, bez pisania kodu.

Wyrażeń regularnych używa się w wielu językach programowania do wyszukiwania tekstu, sprawdzania, czy dane wprowadzone przez użytkownika mają prawidłowy format, oraz wyodrębniania określonych fragmentów z większego bloku tekstu. Składnia jest zwięzła, ale łatwo popełnić w niej błąd, dlatego przetestowanie wzorca przed użyciem go w programie pomaga wcześnie wykryć pomyłki.

Jak testować wyrażenie regularne online

  1. Wpisz wzorzec. Wprowadź regex w polu wzorca. Narzędzie sprawdza składnię podczas pisania i wyświetla komunikat o błędzie, jeśli wzorzec jest nieprawidłowy, na przykład gdy nawias kwadratowy lub okrągły pozostaje niezamknięty.
  2. Wybierz flagi. Flagi zmieniają sposób stosowania wzorca (zob. poniżej).
  3. Wprowadź tekst testowy. Wpisz lub wklej tekst do przeszukania w polu tekstu testowego.
  4. Odczytaj wyniki. Dopasowania są wyróżniane w tekście, a narzędzie podaje ich liczbę. Jeśli istnieje tekst testowy, informuje również, czy wzorzec dopasowuje cały tekst od początku do końca, czy tylko jego część.
  5. Zapisz wzorzec. Wzorzec można zapisać wraz z krótką etykietą, aby użyć go ponownie później. Zapisane wzorce są przechowywane w przeglądarce, a nie na serwerze, więc pojawiają się tylko na tym samym urządzeniu i w tej samej przeglądarce.
  6. Skopiuj wyniki. Dopasowany tekst lub sam wzorzec można skopiować do schowka jednym kliknięciem.

Flagi wyrażeń regularnych

Flaga to pojedyncza litera dodana za wzorcem, która zmienia jego działanie. To narzędzie obsługuje cztery flagi, używane osobno lub łącznie:

FlagaNazwaWpływ
gGlobalnaZnajduje każde dopasowanie w tekście, zamiast zatrzymywać się na pierwszym.
iBez rozróżniania wielkości literIgnoruje różnice między wielkimi i małymi literami.
mWieloliniowaSprawia, że ^ i $ dopasowują początek i koniec każdego wiersza, a nie tylko początek i koniec całego tekstu. Zmienia miejsce znajdowania dopasowań, ale nie wpływa na opisaną poniżej kontrolę całego tekstu.
sDopasuj wszystkoSprawia, że . dopasowuje również znaki nowego wiersza.

Flagi można łączyć, na przykład gi oznacza wyszukiwanie globalne bez rozróżniania wielkości liter, a gms łączy wyszukiwanie globalne, tryb wieloliniowy i dopasowywanie kropką wszystkich znaków.

Jak narzędzie znajduje dopasowania

Mechanizm dopasowywania zawsze wyszukuje każde wystąpienie wzorca w tekście, dlatego zliczanie dopasowań działa tak, jakby flaga globalna była włączona, nawet gdy nie wybrano jej z listy. Każde dopasowanie jest zapisywane wraz z pozycją i długością, a następnie oryginalny tekst jest dzielony na fragmenty dopasowane i niedopasowane, aby można było wyróżnić dopasowania.

Aby sprawdzić, czy wzorzec dopasowuje cały tekst, narzędzie umieszcza wzorzec w grupie nieprzechwytującej i dodaje kotwice: ^(?:pattern)$. Grupowanie ma znaczenie, ponieważ | (alternatywa) ma niższy priorytet niż kotwice. Bez grupy wzorzec taki jak cat|dog zakotwiczony jako ^cat|dog$ oznaczałby w rzeczywistości „zaczyna się od cat lub kończy się na dog”, a nie „cały tekst to cat albo dog”.

Ta kontrola usuwa również flagę wieloliniową. Przy ustawionej fladze m symbole ^ i $ dopasowują się przy każdym końcu wiersza, więc test z kotwicami odpowiadałby na pytanie „czy pasuje dowolny wiersz?”, a nie „czy pasuje cały tekst?”. Narzędzie usuwa m na potrzeby tej kontroli, a zachowuje i i s, ponieważ te dwie flagi zmieniają to, co dopasowuje wzorzec, a nie położenie kotwic. Odpowiedź zawsze odnosi się więc do całego tekstu, wraz z występującymi w nim znakami nowej linii.

Przykład rozwiązany

Wzorzec: \d+ (co najmniej jedna cyfra), flaga: g, tekst testowy: Room 12 has 5 chairs.

  • Znalezione dopasowania: 12 i 5, więc liczba dopasowań wynosi 2.
  • Kontrola całego tekstu: wzorzec nie dopasowuje całego tekstu, ponieważ tekst zawiera również litery i spacje.

Jeśli tekst testowy zostanie zmieniony na 12345, ten sam wzorzec dopasuje cały ciąg, więc kontrola całego tekstu zwróci wartość prawda.

Składnia wyrażeń regularnych — opis

Dopasowywanie znaków

SymbolZnaczeniePrzykładDopasowanie
.Dowolny znak oprócz znaku nowego wierszaa.c„abc”, „adc”, „a1c”
\dDowolna cyfra od 0 do 9\d{3}"123", "456"
\DDowolny znak, który nie jest cyfrą\D+„abc”, „xyz”
\wDowolna litera, cyfra lub znak podkreślenia\w+„abc123”, „test_123”
\WDowolny znak, który nie jest literą, cyfrą ani znakiem podkreślenia\W+"!@#"
\sDowolny znak odstępua\sb„a b”
\SDowolny znak, który nie jest znakiem odstępu\S+„abc”

Kotwice pozycji

SymbolZnaczeniePrzykładDopasowanie
^Początek wiersza^abc„abc” na początku wiersza
$Koniec wierszaabc$„abc” na końcu wiersza
\bGranica słowa\bword\b„word” jako całe słowo

Kwantyfikatory

SymbolZnaczeniePrzykładDopasowanie
*Zero lub więcej wystąpień poprzedniego elementua*b„b”, „ab”, „aab”
+Co najmniej jedno wystąpienie poprzedniego elementua+b„ab”, „aab”
?Zero lub jedno wystąpienie poprzedniego elementucolou?r„color”, „colour”
{n}Dokładnie n wystąpień poprzedniego elementua{3}„aaa”
{n,}Co najmniej n wystąpień poprzedniego elementua{2,}„aa”, „aaa”
{n,m}Od n do m wystąpień poprzedniego elementua{2,4}„aa”, „aaa”, „aaaa”

Zbiory znaków i grupy

SymbolZnaczeniePrzykładDopasowanie
[abc]Dowolny pojedynczy znak wymieniony w nawiasach kwadratowych[aeiou]Dowolna pojedyncza samogłoska
[^abc]Dowolny znak niewymieniony w nawiasach kwadratowych[^aeiou]Dowolny znak niebędący samogłoską
(abc)Grupuje znaki i przechwytuje dopasowanie(abc)+„abc”, „abcabc”
\a\b\Dopasowuje a lub b\cat

Warto znać jeszcze dwie funkcje. Lookahead, zapisywany jako a(?=b), dopasowuje „a” tylko wtedy, gdy występuje po nim „b”, ale nie włącza „b” do dopasowania. Lookbehind, zapisywany jako (?<=a)b, dopasowuje „b” tylko wtedy, gdy występuje bezpośrednio po „a”.

Typowe przykłady wzorców

Te wzorce można wkleić do narzędzia, aby zobaczyć, jak działają na przykładowym tekście.

Tylko cyfry: ^\d+$ dopasowuje ciąg złożony wyłącznie z cyfr, taki jak „48210”, i odrzuca wszystko, co zawiera literę lub spację.

Adres e-mail (podstawowa kontrola): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ dopasowuje adresy w postaci name@domain.tld, takie jak „user@example.com”. Jest to prosta kontrola, a nie pełny format adresu e-mail określony przez standardy internetowe, dlatego niektóre nietypowe, ale prawidłowe adresy nie przejdą tej kontroli.

Numer telefonu w USA: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ dopasowuje formaty takie jak „(123) 456-7890”, „123-456-7890” i „1234567890”.

Data w formacie RRRR-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ sprawdza, czy miesiąc mieści się między 01 a 12, a dzień między 01 a 31. Nie sprawdza, czy dzień jest prawidłowy dla danego miesiąca, dlatego akceptuje „2024-02-30”, mimo że luty nigdy nie ma 30 dni.

Często zadawane pytania

Czym jest wyrażenie regularne? Wyrażenie regularne to ciąg znaków definiujący wzorzec wyszukiwania. Służy do wyszukiwania, dopasowywania i edytowania tekstu w większości języków programowania oraz edytorów tekstu.

Do czego służy flaga globalna? Bez flagi globalnej wyszukiwanie zwykle kończy się po pierwszym dopasowaniu. Z flagą globalną (g) wyszukiwanie jest kontynuowane i zgłasza każde dopasowanie w tekście. To narzędzie zawsze wyszukuje wszystkie dopasowania podczas ich zliczania, niezależnie od wybranej flagi.

Jak dopasować dosłowną kropkę lub inny znak specjalny? Należy poprzedzić go odwrotnym ukośnikiem. Na przykład \. dopasowuje dosłowną kropkę zamiast „dowolnego znaku”, co oznacza niepoprzedzona znakiem ucieczki ..

Jaka jest różnica między .* a .*?? .* jest zachłanne i dopasowuje tyle znaków, ile tylko może. .*? jest leniwe i dopasowuje jak najmniej znaków, jednocześnie pozwalając na pomyślne dopasowanie pozostałej części wzorca.

Dlaczego narzędzie informuje, że tekst nie pasuje w całości, mimo że pasuje każdy wiersz? Kontrola całego tekstu traktuje tekst jako jeden ciąg, wraz ze znakami końca wiersza. Wzorzec taki jak \d+ dopasowuje osobno każdy wiersz 12 i 34, ale oba wiersze wraz ze znajdującym się między nimi znakiem nowego wiersza nie składają się wyłącznie z cyfr, więc odpowiedź dotycząca całego tekstu brzmi „nie”. Aby dopasować tekst obejmujący kilka wierszy, wzorzec musi obejmować również znaki końca wiersza, na przykład za pomocą [\s\S]+.

Jak sprawdzić, czy cały ciąg pasuje do wzorca, a nie tylko jego część? Dodaj ^ na początku i $ na końcu wzorca, na przykład ^[0-9]+$ dla ciągu zawierającego wyłącznie cyfry.

Czy ten tester stosuje reguły wyrażeń regularnych z innych języków programowania? To narzędzie używa silnika wyrażeń regularnych wbudowanego w JavaScript. Większość podstawowej składni, takiej jak klasy znaków i kwantyfikatory, jest wspólna dla języków takich jak Python, Java i Perl, ale niektóre szczegóły się różnią, więc nie ma gwarancji, że wzorzec działający tutaj będzie zachowywać się identycznie wszędzie.

Piśmiennictwo

  1. "Regular expression." Wikipedia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Regular_expression
  2. MDN Web Docs. "Regular expressions." Mozilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  3. Friedl, J. E. F. (2006). Mastering Regular Expressions. O’Reilly Media.