10 Tester RegEx dla JavaScript, Python, PHP, Golang, Ruby itp.

Photo of author

By maciekx

Wyrażenia regularne, zwane też regexami, potrafią sprawić pewne trudności. Czasami ich złożoność jest spora!

Zanurzmy się w świat wyrażeń regularnych, odkrywając ich tajemnicze wzorce. Przeanalizujemy konstrukcje, które na pierwszy rzut oka mogą przypominać chaotyczny zlepek znaków. Zrozumiemy znaczenie każdego elementu składowego wyrażenia regularnego.

Po lekturze tego artykułu, będziesz w stanie samodzielnie tworzyć i efektywnie wykorzystywać wyrażenia regularne. Na zakończenie przedstawimy także przydatne narzędzia online do testowania regexów. Dzięki nim, w oparciu o swoje potrzeby, szybko skonstruujesz i sprawdzisz swoje wyrażenie.

Wprowadzenie

Wyrażenia regularne, w skrócie RegEx, to sekwencje znaków, które pełnią rolę wzorców do wyszukiwania określonych kombinacji znaków lub ciągów tekstowych.

Przykładowo, aby stwierdzić, czy w danym ciągu znaków pojawia się słowo „jabłko”, możemy użyć wyrażenia „/jabłko”. Inny przykład, „/[0-9]/” pozwoli nam zweryfikować, czy w tekście znajduje się jakakolwiek cyfra od 0 do 9.

Zastosowania wyrażeń regularnych

Wyrażenia regularne znajdują szerokie zastosowanie w różnych aspektach współczesnej technologii internetowej. Są one kluczowe w walidacji formularzy internetowych, działaniu wyszukiwarek, analizatorów leksykalnych w środowiskach IDE, edytorach tekstu oraz dokumentów. To tylko kilka przykładów, gdzie regexy są niezastąpione.

Każdy z nas wielokrotnie korzystał ze skrótu klawiszowego „CTRL + F”, aby przeszukać dokument lub kod w poszukiwaniu konkretnego słowa, frazy czy wzorca. Ta prosta funkcja jest doskonałym przykładem praktycznego wykorzystania wyrażeń regularnych.

Zanim przejdziemy dalej, spójrzmy na jedno z częściej spotykanych wyrażeń regularnych.

Czy domyślasz się 🤔, jaką rolę pełni poniższy RegEx?

^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$

Nie przejmuj się, jeśli nie znasz odpowiedzi. Jestem przekonany, że po przeczytaniu tego artykułu, z łatwością go rozszyfrujesz.

Zacznijmy od podstawowych elementów RegEx.

Tokeny

Na początek, przyjrzyjmy się różnym symbolom użytym w powyższym wyrażeniu regularnym.

^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$

Jak widać, składa się ono z wielu symboli, znaków, czyli tokenów. Zbadajmy, co każdy z nich oznacza:

Znak

Znaczenie

^

Ten token sygnalizuje początek ciągu znaków.

(…)

Oznacza grupę, w której wszystko, co znajduje się w nawiasach, jest przechwytywane.

[…]

W nawiasach kwadratowych umieszczamy zbiór znaków, z których każdy może zostać dopasowany. Na przykład – [abc] pasuje do a, b lub c.

a-z

Zbiór małych liter od a do z. Ważne jest, że RegEx rozróżnia wielkość liter.

A-Z

Zbiór wielkich liter od A do Z.

0-9

Cyfry od 0 do 9.

_

Dopasowuje znak podkreślenia „_”.

Jest to znak specjalny.

.

Dopasowuje dosłownie znak „.”. Jest to konieczne, gdyż symbol „.” w wyrażeniach regularnych ma swoje specjalne znaczenie, mianowicie dopasowuje dowolny znak.

+

To kwantyfikator. Dopasowuje jedno lub więcej wystąpień poprzedzającego znaku. Na przykład a+ oznacza jedno lub więcej a.

Dopasowuje znak łącznika „-„.

@

Dopasowuje znak „@”.

{}

Kolejny kwantyfikator. Służy do określania liczby wystąpień poprzedzającego znaku. Na przykład a{3} dopasuje dokładnie 3 znaki a.

$

Oznacza koniec ciągu znaków.

Analiza danego wzorca RegEx

Mając podstawową wiedzę o tokenach, spróbujmy zrozumieć wspomniane wcześniej wyrażenie regularne:

  • ^([a-zA-Z0-9_-.]+) mówi nam, że szukamy ciągu, który zaczyna się od co najmniej jednego znaku alfanumerycznego, podkreślenia, łącznika lub kropki. Na przykład „nazwa_użytkownika.01” pasowałaby do tego wzorca. Należy pamiętać, że w nawiasach kwadratowych wystarczy dopasowanie tylko jednego ze znaków, a nie wszystkich na raz.
  • Znak @ dopasowuje pojedyncze wystąpienie znaku @. Kontynuując poprzedni przykład: „[email protected]” będzie dopasowany.
  • ([a-zA-Z0-9_-.]+) działa analogicznie do pierwszego punktu. Oznacza, że poszukujemy ciągu, który składa się z co najmniej jednego znaku alfanumerycznego, podkreślenia, łącznika lub kropki. W naszym przykładzie: „[email protected]” wpasuje się w ten wzorzec.
  • Jak już zapewne się domyślasz, sugerujemy wzorzec adresu e-mail. Idąc dalej, znak „.” dopasowuje pojedynczą kropkę „.”. W naszym przykładzie:[email protected]
  • ([a-zA-Z]{2,5})$ informuje nas, że ciąg musi kończyć się 2 do 5 znakami alfabetu, bez rozróżnienia wielkości liter. Dodając .com do poprzedniego przykładu, otrzymujemy „[email protected]”, który jest typowym wzorem adresu e-mail.

Podsumowując, widzimy, że szukamy wzorca, który odpowiada adresowi e-mail. Za pomocą tego wyrażenia możemy weryfikować poprawność wprowadzonych adresów e-mail. Jeśli wprowadzony adres pasuje do tego wzorca, możemy uznać go za poprawny.

PS – to wzorzec dla najczęściej spotykanych adresów e-mail w Internecie.

Rodzaje tokenów

W wyrażeniach regularnych można łączyć różne tokeny, aby opisać szeroki zakres wzorców. Przyjrzyjmy się różnym rodzajom tokenów, w tym także najczęściej używanym tokenom w każdej kategorii.

Tokeny podstawowe

Zacznijmy od podstawowych tokenów. Są to elementy, które spotykamy w niemal każdym wyrażeniu regularnym. Dlatego warto poznać je jako pierwsze.

Znak

Znaczenie

r

Dopasowuje znak powrotu karetki.


newsblog.pl