W tym artykule
Czym jest wyrażenie regularne?
Wyrażenie regularne (regex lub regexp) to ciąg znaków definiujący wzorzec wyszukiwania. Służy do przeszukiwania, dopasowywania, wyodrębniania, zastępowania i walidacji tekstu. Wzorce regex są natywnie obsługiwane niemal w każdym języku programowania i stanowią niezbędne narzędzie w zestawie każdego programisty.
Regex może być prosty jak \d+ (jedna lub więcej cyfr) lub złożony — wieloliniowy wzorzec z wyprzedzeniami (ang. lookaheads), odwołaniami wstecznymi i grupami nazwanymi. Choć potężne, skomplikowane wyrażenia regex bywają trudne do odczytania i utrzymania — tester regex pomaga budować i weryfikować wzorce interaktywnie.
Jak działa nasz tester regex
Tester regex zapewnia dopasowanie w czasie rzeczywistym z wizualnym podświetlaniem podczas pisania.
- Dopasowanie na żywo — podświetla wszystkie dopasowania w testowanym tekście podczas wpisywania wzorca
- Obsługa flag — przełączaj flagi global, case-insensitive, multiline i dotAll
- Podgląd grup — wyświetla przechwycone grupy i nazwane przechwycenia dla złożonych wzorców
Wypróbuj za darmo — bez rejestracji
Testuj wyrażenie regularne →Kiedy używać testera regex
Tester regex jest przydatny zawsze, gdy trzeba opracować lub zdebugować wzorzec przed osadzeniem go w kodzie.
- Walidacja formularzy — twórz i testuj wzorce dla e-maila, telefonu, kodu pocztowego lub niestandardowej walidacji danych wejściowych
- Parsowanie logów — buduj wyrażenia regex do wyodrębniania pól z linii logów przed przetwarzaniem przez grep lub awk
- Ekstrakcja danych — testuj wzorce do scrapowania lub parsowania danych strukturalnych z tekstu lub HTML
Często zadawane pytania
Jaka jest różnica między kwantyfikatorami zachłannymi a leniwymi?
Kwantyfikatory zachłanne (*, +, ?) dopasowują jak najwięcej znaków. Kwantyfikatory leniwe (*?, +?, ??) dopasowują jak najmniej. Przykładowo dla ciągu <a>tekst</a> wzorzec <.*> dopasuje cały ciąg (zachłanny), podczas gdy <.*?> dopasuje tylko <a> (leniwy). Kwantyfikatory leniwe są niezbędne do parsowania HTML lub zagnieżdżonych struktur.
Jak dopasować dosłowną kropkę lub inny znak specjalny w regex?
Poprzedź znak ukośnikiem odwrotnym: \. dopasowuje dosłowną kropkę, \* dopasowuje dosłowną gwiazdkę. Znaki specjalne wymagające ucieczki to: . * + ? ^ $ { } [ ] | ( ) \. Aby dopasować je dosłownie, zawsze poprzedź je znakiem \.
Dlaczego moje wyrażenie regex działa inaczej w JavaScript niż w Pythonie?
Różne języki implementują nieco odmienne dialekty regex. Główne różnice obejmują: Python używa (?P<name>) dla grup nazwanych, podczas gdy JavaScript używa (?<name>); obsługa wyprzedzeń wstecznych (ang. lookbehind) różni się; niektóre funkcje jak \K (keep) istnieją w PCRE, ale nie w JavaScript. Zawsze testuj wyrażenia regex w kontekście docelowego języka.