Tester wzorców Regex
Wyniki dopasowania
Wprowadź wzorzec i tekst do testowania, aby zobaczyć wyniki
Zapisz wzorzec
Wyniki dopasowania
Wprowadź wzorzec i tekst do testowania, aby zobaczyć wyniki
Zapisane wzorce
Brak zapisanych wzorców
Przewodnik po symbolach Regex
.
Dopasowuje dowolny znak z wyjątkiem nowej linii\d
Dopasowuje dowolną cyfrę (0-9)\D
Dopasowuje dowolny znak niebędący cyfrą\w
Dopasowuje dowolny znak słowa (a-z, A-Z, 0-9, _)\W
Dopasowuje dowolny znak niebędący znakiem słowa\s
Dopasowuje dowolny znak białego miejsca\S
Dopasowuje dowolny znak niebędący białym miejscem^
Dopasowuje początek linii$
Dopasowuje koniec linii*
Dopasowuje 0 lub więcej poprzedzających znaków+
Dopasowuje 1 lub więcej poprzedzających znaków?
Dopasowuje 0 lub 1 poprzedzającego znaku{n}
Dopasowuje dokładnie n poprzedzających znaków{n,}
Dopasowuje co najmniej n poprzedzających znaków{n,m}
Dopasowuje od n do m poprzedzających znaków[abc]
Dopasowuje dowolny z znaków w nawiasach[^abc]
Dopasowuje dowolny znak niebędący w nawiasach(abc)
Grupuje wiele tokenów razem i przechwytuje dopasowaniea|b
Dopasowuje a lub b\b
Dopasowuje pozycję granicy słowaTester i Walidator Wzorów Wyrażeń Regularnych
Wprowadzenie
Tester wzorów wyrażeń regularnych (regex) to niezbędne narzędzie dla programistów, analityków danych i każdego, kto pracuje z przetwarzaniem tekstu. Ten kompleksowy walidator wzorów regex pozwala na tworzenie, testowanie i udoskonalanie wyrażeń regularnych w czasie rzeczywistym, zapewniając natychmiastową wizualną informację zwrotną na temat dopasowań wzorów. Niezależnie od tego, czy walidujesz adresy e-mail, analizujesz pliki dzienników, czy wyciągasz konkretne dane z tekstu, nasz tester regex sprawia, że proces tworzenia i debugowania jest szybszy i bardziej intuicyjny.
Wyrażenia regularne to potężne sekwencje dopasowujące wzory, które umożliwiają zaawansowane wyszukiwanie tekstu, walidację i manipulację. Jednak ich składnia może być skomplikowana i trudna do opanowania. Ten tester wzorów regex upraszcza ten proces, podświetlając dopasowania w miarę pisania, walidując składnię wzoru i pozwalając na zapisanie często używanych wzorów do przyszłego użytku.
Jak korzystać z Testera Wzorów Wyrażeń Regularnych
Korzystanie z naszego walidatora wzorów regex jest proste i intuicyjne. Postępuj zgodnie z tymi krokami, aby rozpocząć:
-
Wprowadź Wzór Wyrażenia Regularnego: Wpisz swój wzór regex w wyznaczonym polu wejściowym. Narzędzie waliduje twój wzór w czasie rzeczywistym, informując o wszelkich błędach składniowych.
-
Wybierz Flagi Regex: Wybierz odpowiednie flagi dla swojego wzoru:
g
(Globalna): Znajdź wszystkie dopasowania, zamiast zatrzymywać się po pierwszym dopasowaniui
(Nieczuły na wielkość liter): Uczyń wzór nieczułym na wielkość literm
(Wielowierszowy): Uczyń^
i$
dopasowywać początek/koniec każdego wiersza- Różne kombinacje tych flag są dostępne w rozwijanym menu
-
Wprowadź Tekst Testowy: Wprowadź tekst, który chcesz przetestować w odniesieniu do swojego wzoru w obszarze tekstu testowego.
-
Zobacz Wyniki w Czasie Rzeczywistym: W miarę pisania narzędzie automatycznie:
- Podświetla wszystkie dopasowania wzoru w teście tekstowym
- Wyświetla całkowitą liczbę znalezionych dopasowań
- Wskazuje, czy wzór dopasowuje cały tekst
-
Zapisz Użyteczne Wzory: Dla wzorów, które używasz często:
- Wprowadź opisową etykietę dla swojego wzoru
- Kliknij przycisk "Zapisz"
- Uzyskaj dostęp do zapisanych wzorów w sekcji "Zapisane Wzory"
-
Kopiuj Wyniki: Użyj przycisku "Kopiuj Dopasowania", aby skopiować cały dopasowany tekst do schowka do użycia w innych aplikacjach.
Interfejs jest podzielony na dwa główne panele: panel wejściowy, w którym wprowadzasz swój wzór i tekst testowy, oraz panel wyników, który wyświetla dopasowania i informacje o wzorze.
Podstawy Wyrażeń Regularnych
Wyrażenia regularne używają specjalnych znaków i sekwencji do definiowania wzorów wyszukiwania. Oto przewodnik po podstawowych symbolach regex obsługiwanych przez nasze narzędzie:
Dopasowywanie Znaków
Symbol | Opis | Przykład | Dopasowuje |
---|---|---|---|
. | Dopasowuje dowolny znak z wyjątkiem nowej linii | a.c | "abc", "adc", "a1c" itp. |
\d | Dopasowuje dowolną cyfrę (0-9) | \d{3} | "123", "456", "789" itp. |
\D | Dopasowuje dowolny znak niebędący cyfrą | \D+ | "abc", "xyz" itp. |
\w | Dopasowuje dowolny znak alfanumeryczny (a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123" itp. |
\W | Dopasowuje dowolny znak niealfanumeryczny | \W+ | "!@#", " + " itp. |
\s | Dopasowuje dowolny znak biały | a\sb | "a b", "a\tb" itp. |
\S | Dopasowuje dowolny znak niebędący białym | \S+ | "abc", "123" itp. |
Kotwice Pozycji
Symbol | Opis | Przykład | Dopasowuje |
---|---|---|---|
^ | Dopasowuje początek linii | ^abc | "abc" na początku linii |
$ | Dopasowuje koniec linii | abc$ | "abc" na końcu linii |
\b | Dopasowuje granicę wyrazu | \bword\b | "word" jako całe słowo |
Kwalifikatory
Symbol | Opis | Przykład | Dopasowuje |
---|---|---|---|
* | Dopasowuje 0 lub więcej z poprzedzającego znaku | a*b | "b", "ab", "aab" itp. |
+ | Dopasowuje 1 lub więcej z poprzedzającego znaku | a+b | "ab", "aab", "aaab" itp. |
? | Dopasowuje 0 lub 1 z poprzedzającego znaku | colou?r | "color", "colour" |
{n} | Dopasowuje dokładnie n z poprzedzającego znaku | a{3} | "aaa" |
{n,} | Dopasowuje co najmniej n z poprzedzającego znaku | a{2,} | "aa", "aaa", "aaaa" itp. |
{n,m} | Dopasowuje od n do m z poprzedzającego znaku | a{2,4} | "aa", "aaa", "aaaa" |
Klasy Znaków
Symbol | Opis | Przykład | Dopasowuje |
---|---|---|---|
[abc] | Dopasowuje dowolny z znaków w nawiasach | [aeiou] | "a", "e", "i", "o", "u" |
[^abc] | Dopasowuje dowolny znak nie znajdujący się w nawiasach | [^aeiou] | Dowolny znak oprócz "a", "e", "i", "o", "u" |
[a-z] | Dopasowuje dowolny znak w zakresie | [a-z] | Dowolna mała litera |
Grupowanie i Alternacja
Symbol | Opis | Przykład | Dopasowuje |
---|---|---|---|
(abc) | Grupuje wiele tokenów razem i przechwytuje dopasowanie | (abc)+ | "abc", "abcabc" itp. |
a|b | Dopasowuje albo a, albo b | cat|dog | "cat", "dog" |
Zaawansowane Wzory Regex
Gdy opanujesz podstawy, możesz tworzyć bardziej skomplikowane wzory, aby rozwiązywać złożone wyzwania przetwarzania tekstu:
Walidacja E-maili
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Ten wzór waliduje adresy e-mail, zapewniając, że przestrzegają standardowego formatu: nazwa_użytkownika@domena.tld.
Walidacja URL
^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
Ten wzór waliduje URL, w tym te z lub bez protokołu http/https.
Walidacja Numerów Telefonów (Format USA)
^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
Ten wzór dopasowuje numery telefonów w USA w różnych formatach: (123) 456-7890, 123-456-7890 lub 1234567890.
Walidacja Dat (RRRR-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
Ten wzór waliduje daty w formacie RRRR-MM-DD, z podstawową walidacją dla zakresów miesięcy i dni.
Lookahead i Lookbehind
Assercje lookahead i lookbehind pozwalają na dopasowywanie wzorów tylko wtedy, gdy są one poprzedzone lub następne przez inny wzór:
- Pozytywny lookahead:
a(?=b)
dopasowuje "a" tylko wtedy, gdy jest następnie "b" - Negatywny lookahead:
a(?!b)
dopasowuje "a" tylko wtedy, gdy nie jest następnie "b" - Pozytywny lookbehind:
(?<=a)b
dopasowuje "b" tylko wtedy, gdy jest poprzedzone przez "a" - Negatywny lookbehind:
(?<!a)b
dopasowuje "b" tylko wtedy, gdy nie jest poprzedzone przez "a"
Praca z Flagami Regex
Nasz tester regex obsługuje różne flagi, które modyfikują sposób dopasowywania wzorów:
- g (Globalna): Znajdź wszystkie dopasowania, zamiast zatrzymywać się po pierwszym dopasowaniu
- i (Nieczuły na wielkość liter): Uczyń wzór nieczułym na wielkość liter
- m (Wielowierszowy): Uczyń
^
i$
dopasowywać początek/koniec każdego wiersza - Kombinacje: Możesz łączyć flagi, aby uzyskać bardziej złożone wymagania dopasowania
Przykłady Zastosowania Testowania Wzorów Regex
Wyrażenia regularne mają liczne praktyczne zastosowania w różnych dziedzinach:
Rozwój Webowy
-
Walidacja Formularzy: Upewnij się, że dane wprowadzone przez użytkownika pasują do wymaganych formatów:
- Adresy e-mail:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
- Hasła (z wymaganiami dotyczącymi złożoności):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
- URL:
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
- Adresy e-mail:
-
Analiza HTML: Wyciągaj konkretne elementy lub atrybuty:
- Znajdź wszystkie tagi obrazków:
<img[^>]+src="([^">]+)"
- Wyciągnij linki:
<a[^>]+href="([^">]+)"
- Znajdź wszystkie tagi obrazków:
Przetwarzanie Danych
-
Analiza Plików Dzienników: Wyciągaj informacje z wpisów dziennika:
- Adresy IP:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
- Znaki czasowe:
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
- Komunikaty o błędach:
ERROR: .*
- Adresy IP:
-
Analiza CSV: Przetwarzaj wartości oddzielone przecinkami z potencjalnymi cytowanymi polami:
- Dopasowanie pola CSV:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
- Dopasowanie pola CSV:
Przetwarzanie Tekstu
-
Znajdź i Zastąp: Zidentyfikuj wzory do zastąpienia:
- Usuń tagi HTML:
<[^>]*>
- Formatuj numery telefonów:
(\d{3})(\d{3})(\d{4})
→($1) $2-$3
- Usuń tagi HTML:
-
Ekstrakcja Treści: Wyciągaj konkretne informacje z nieustrukturyzowanego tekstu:
- Wyciągnij daty:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
- Znajdź wartości pieniężne:
\$\d+(?:\.\d{2})?
- Wyciągnij daty:
Programowanie i Kodowanie
-
Podświetlanie Składni: Zidentyfikuj konstrukcje językowe:
- Zmienne JavaScript:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
- Definicje funkcji:
function\s+([a-zA-Z_$][\w$]*)\s*\(
- Zmienne JavaScript:
-
Refaktoryzacja Kodu: Znajdź wzory, które wymagają aktualizacji:
- Przestarzałe wywołania API:
\.oldMethod\(
- Niebezpieczne funkcje:
eval\(
- Przestarzałe wywołania API:
Zapisywanie i Zarządzanie Wzorami
Nasz tester wzorów regex zawiera system zarządzania wzorami, który pozwala na zapisywanie i ponowne używanie często używanych wyrażeń:
Kiedy Zapisz Wzory
Rozważ zapisanie wzorów, które:
- Używasz często w różnych projektach
- Są skomplikowane i trudne do zapamiętania
- Służą do konkretnych celów walidacji w twojej pracy
- Udoskonaliłeś po wielu iteracjach
Najlepsze Praktyki dla Etykiet Wzorów
Podczas zapisywania wzorów używaj opisowych etykiet, które:
- Wskazują cel wzoru (np. "Walidator E-maili")
- Wspominają o konkretnych formatach (np. "Numer Telefonu USA")
- Zawierają informacje o wersji, jeśli iterujesz wzory (np. "Walidator URL v2")
- Są zwięzłe, ale informacyjne
Organizacja Wzorów
Organizuj swoje zapisane wzory według:
- Funkcji (walidacja, ekstrakcja, zastąpienie)
- Dziedziny (rozwój webowy, przetwarzanie danych)
- Złożoności (podstawowe, zaawansowane)
- Częstości użycia
Udostępnianie Wzorów
Chociaż nasze narzędzie nie obsługuje bezpośrednio udostępniania wzorów między użytkownikami, możesz:
- Skopiować wzory, aby podzielić się z kolegami
- Udokumentować swoje wzory w wspólnym repozytorium
- Zawierać opisy wzorów w dokumentacji projektu
Rozwiązywanie Typowych Problemów z Regex
Nawet doświadczeni programiści napotykają wyzwania związane z wyrażeniami regularnymi. Oto rozwiązania dla typowych problemów:
Błędy Składniowe
Jeśli twój wzór pokazuje błąd walidacji:
- Sprawdź, czy nie ma niedopasowanych nawiasów, nawiasów kwadratowych lub klamrowych
- Upewnij się, że znaki specjalne są poprawnie escape'owane za pomocą ukośnika
- Zweryfikuj, czy kwalifikatory mają poprzedzający znak lub grupę
- Poszukaj nieprawidłowej składni klasy znaków
Problemy z Wydajnością
Jeśli twój regex jest wolny lub powoduje opóźnienia w przeglądarce:
- Unikaj nadmiernego użycia zagnieżdżonych kwalifikatorów (np.
(a+)+
) - Bądź ostrożny z lookaheadami i lookbehindami w dużych tekstach
- Rozważ użycie bardziej specyficznych wzorów zamiast szerokich
- Podziel skomplikowane wzory na mniejsze, bardziej zarządzalne części
Nieoczekiwane Dopasowania
Jeśli twój wzór dopasowuje niepożądany tekst:
- Użyj kotwic (
^
i$
), aby dopasować całe ciągi - Uczyń klasy znaków bardziej specyficznymi
- Dodaj granice wyrazów (
\b
) tam, gdzie to odpowiednie - Użyj negatywnych lookaheadów, aby wykluczyć pewne wzory
Brak Dopasowań
Jeśli twój wzór nie dopasowuje oczekiwanego tekstu:
- Sprawdź problemy z czułością na wielkość liter (rozważ użycie flagi
i
) - Zweryfikuj, czy znaki specjalne są poprawnie escape'owane
- Przetestuj swój wzór na uproszczonych przykładach najpierw
- Upewnij się, że używasz odpowiednich klas znaków
Alternatywy dla Wyrażeń Regularnych
Chociaż regex jest potężny, nie zawsze jest najlepszym rozwiązaniem dla każdego zadania przetwarzania tekstu:
Metody Łańcuchowe
Dla prostych operacji tekstowych, natywne metody łańcuchowe są często jaśniejsze i bardziej wydajne:
String.indexOf()
do znajdowania podciągówString.startsWith()
iString.endsWith()
do sprawdzania granic łańcuchaString.split()
do podstawowej tokenizacji
Specjalistyczne Parsery
Dla ustrukturyzowanych formatów danych, dedykowane parsery są bardziej solidne:
- Parsery JSON dla danych JSON
- Parsery XML/HTML dla języków znaczników
- Parsery CSV dla danych tabelarycznych
Przetwarzanie Języka Naturalnego (NLP)
Dla rozumienia znaczenia tekstu, a nie tylko wzorów:
- Narzędzia do analizy sentymentu
- Rozpoznawanie nazwanych jednostek
- Oznaczanie części mowy
Kiedy Wybrać Alternatywy
Rozważ alternatywy dla regex, gdy:
- Struktura tekstu jest bardzo regularna i prosta
- Format ma dostępny ustandaryzowany parser
- Musisz zrozumieć znaczenie semantyczne
- Wydajność jest kluczowa dla bardzo dużych tekstów
Najczęściej Zadawane Pytania
Czym jest wyrażenie regularne?
Wyrażenie regularne (regex) to sekwencja znaków, która definiuje wzór wyszukiwania. Wzory te mogą być używane do wyszukiwania ciągów, dopasowywania i operacji manipulacji tekstem.
Dlaczego potrzebuję testera wzorów regex?
Tester wzorów regex pomaga w opracowywaniu i debugowaniu wyrażeń regularnych, zapewniając natychmiastową wizualną informację zwrotną na temat dopasowań, walidując składnię wzoru i pozwalając na eksperymentowanie z różnymi wzorami i flagami bez konieczności implementowania ich w kodzie.
Jak dopasować dosłowny znak specjalny, taki jak kropka lub gwiazdka?
Aby dopasować dosłowne znaki specjalne, które zazwyczaj mają specjalne znaczenie w regex, musisz je escape'ować za pomocą ukośnika. Na przykład, aby dopasować dosłowną kropkę, użyj \.
zamiast po prostu .
.
Jaka jest różnica między .*
a .*?
w wzorze regex?
.*
to chciwy kwalifikator, który dopasowuje jak najwięcej znaków, podczas gdy .*?
to leniwy (niechciwy) kwalifikator, który dopasowuje jak najmniej znaków. To rozróżnienie jest ważne, gdy chcesz znaleźć najkrótsze dopasowanie, a nie najdłuższe.
Czy mogę użyć tego testera regex dla wzorów w dowolnym języku programowania?
Chociaż podstawowa składnia regex jest podobna w wielu językach, istnieją subtelne różnice w implementacji. Nasz tester używa silnika regex JavaScript, który jest zgodny z wieloma językami webowymi, ale może mieć różnice w porównaniu do regex w językach takich jak Python, Java czy Perl.
Jak mogę zwalidować cały ciąg za pomocą regex?
Aby zwalidować, że cały ciąg pasuje do wzoru, użyj kotwicy ^
na początku i kotwicy $
na końcu swojego regexu. Na przykład, ^[0-9]+$
dopasuje tylko ciągi składające się wyłącznie z cyfr.
Czym są grupy przechwytujące i jak ich używać?
Grupy przechwytujące, tworzone za pomocą nawiasów ()
, pozwalają na wyodrębnienie konkretnych części dopasowanego tekstu. W naszym testerze możesz zobaczyć wszystkie dopasowania, w tym przechwycone grupy. W językach programowania zazwyczaj możesz uzyskać dostęp do tych przechwyceń, indeksując wynik dopasowania.
Jak mogę uczynić moje wzory regex bardziej wydajnymi?
Aby poprawić wydajność regex: bądź specyficzny z klasami znaków, unikaj niepotrzebnych grup przechwytujących (używaj grup nieprzechwytujących (?:...)
, gdy to możliwe), ogranicz użycie lookaheadów/lookbehindów, i unikaj katastrofalnych wzorów backtrackingowych, takich jak zagnieżdżone kwalifikatory.
Jakie są najczęstsze błędy regex, których należy unikać?
Typowe błędy obejmują: brak escape'owania znaków specjalnych, tworzenie wzorów, które są zbyt chciwe, zapominanie o kotwicach wzorów (z ^
i $
), oraz pisanie zbyt skomplikowanych wyrażeń, które są trudne do utrzymania.
Czy regex może obsługiwać zagnieżdżone struktury, takie jak HTML?
Wyrażenia regularne nie są dobrze przystosowane do analizowania zagnieżdżonych struktur, takich jak HTML czy XML. Chociaż możesz stworzyć wzory regex do prostego dopasowywania HTML, ogólnie lepiej jest używać dedykowanego parsera HTML do przetwarzania złożonego HTML.
Bibliografia
- Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.
- Goyvaerts, J., & Levithan, S. (2012). Regular Expressions Cookbook. O'Reilly Media.
- "Wyrażenie regularne." Wikipedia, Wikimedia Foundation, https://pl.wikipedia.org/wiki/Wyra%C5%BCenie_regularne
- MDN Web Docs. "Wyrażenia regularne." Mozilla, https://developer.mozilla.org/pl/docs/Web/JavaScript/Guide/Regular_Expressions
- RegExr: Ucz się, buduj i testuj RegEx. https://regexr.com/
Wypróbuj nasz tester wzorów regex już dziś, aby uprościć swoje zadania przetwarzania tekstu, walidować formaty wejściowe i wyciągać znaczące dane z nieustrukturyzowanego tekstu. Niezależnie od tego, czy jesteś początkującym uczącym się podstaw wyrażeń regularnych, czy doświadczonym programistą pracującym nad złożonym dopasowaniem wzorów, nasze narzędzie zapewnia funkcje, których potrzebujesz, aby efektywnie tworzyć, testować i udoskonalać swoje wzory regex.