Czy wiesz, czym są wyrażenia regularne? Niezależnie, czy stykasz się z nimi po raz pierwszy, czy już od jakiegoś czasu myślisz o tym, aby się ich nauczyć — w dzisiejszym wpisie znajdziesz wszystkie podstawowe wiadomości na ich temat. Wyjaśniamy, jak korzystać z “regex’ów” i dlaczego są tak przydatnym narzędziem. Zapraszamy do lektury!
Wyrażenia regularne (regex) od podstaw
Wyrażenia regularne — z angielskiego, regular expressions, czyli w skrócie regex — to narzędzie do przeszukiwania ciągów znaków. Pozwalają one „wychwycić” w tekście wszystkie sekwencje znaków (frazy) zgodne z określonym wzorcem — który definiujemy właśnie przy pomocy wyrażenia regularnego.
Swoje zastosowanie regex’y znajdują przede wszystkim w świecie programowania (stanowią część standardowych bibliotek większości języków, np. Pythona czy JavaScript), ale także w zaawansowanych edytorach tekstów czy… niektórych narzędziach SEO. O tych ostatnich opowiemy na końcu.
Jak wygląda składnia wyrażeń regularnych?
Początkującym największych trudności przysparza sama składnia wyrażeń regularnych. W praktyce — nie jest jednak wcale taka straszna.
Wyrażenia regularne składają się z dwóch typów znaków:
- zwyczajnych — czyli tych, które oznaczają „same siebie” i należy interpretować dosłownie — głównie są to litery oraz cyfry;
- specjalnych — tak zwanych metaznaków, które mają konkretne, przypisane sobie znaczenie.
Nauczyć trzeba się tylko tej drugiej grupy. Najważniejsze metaznaki zebraliśmy poniżej.
- . (kropka) — oznacza dowolny znak
- ^ — określa, że łańcuch musi zaczynać się od danego ciągu znaków;
- $ — określa, że łańcuch musi kończyć się danym ciągiem znaków;
- | — pełni rolę operatora lub;
- \ — „neutralizuje” znaczenie znaku specjalnego;
- * – poprzedzający go znak musi pojawić się 0 lub więcej razy (we frazie, ciągiem);
- + – poprzedzający go znak musi pojawić się 1 lub więcej razy (we frazie, ciągiem);
- ? – poprzedzający go znak jest opcjonalny;
- {} – określa, ile razy pojawić musi się dany znak (we frazie, ciągiem);
- [] — pozwala wyszukać wszystkie znajdujące się w nawiasie kwadratowym znaki (w dowolnej kolejności);
- [^] — pozwala wyszukać wszystkie znaki oprócz tych, które umieszczone są w nawiasie kwadratowym;
- () — wyszukuje umieszczone w nawiasie znaki dokładnie w takiej kolejności, w jakiej je wpisaliśmy. Często wykorzystuje się go razem ze znakiem „|”, aby wskazać, w jakim konkretnie miejscu naszego wyrażenia chcemy użyć operatora lub;
- [0-9] lub [A-Z] — pozwala wyszukać litery/cyfry z określonego zakresu;
- \b \b — szuka tylko całych słów;
- \B \B — szuka tylko tych ciągów znaków, które znajdują się w środku innego słowa.
To oczywiście nie wszystkie znaki oraz konstrukcje, które można wykorzystać przy tworzeniu wyrażeń regularnych. Nieco dłuższą listę znajdziesz np. na https://help.libreoffice.org/6.1/pl/text/shared/01/02100001.html.
Z naszej strony — polecamy zajrzeć także na stronę https://regexr.com/, przy pomocy której przygotowaliśmy wszystkie powyższe przykłady. Możesz na niej poćwiczyć tworzenie własnych regex’ów, a przede wszystkim — łączenie ich w dłuższe ciągi.
Jak wykorzystuje się wyrażenia regularne w SEO?
Okazuje się, że wyrażenia regularne — choć z pozoru wyglądają raczej jak funkcje języka programowania! — mają swoje zastosowanie także w narzędziach pozycjonerskich.
Pierwszy przykład z brzegu — w zasadzie wszystkie narzędzia pozwalające przeprowadzić audyt strony pod kątem SEO (np. Semrush czy Ahrefs) pozwalają, właśnie przy pomocy regex’ów, filtrować podstrony, które rzeczywiście chcemy poddać analizie. Wystarczy jedno proste wyrażenie, by zamiast tysiąca adresów narzędzie przeanalizowało i wyświetliło wyniki audytu tylko dla wybranych podstron.
Jeszcze bardziej wyrażenia regularne mogą się przydać podczas analizy danych w Google Analytics. Najczęściej do filtrowania słów kluczowych czy adresów w interfejsie raportowania, ale też w widoku danych, do wyłączenia określonych sekcji witryny z analiz. Jeszcze ciekawsze zastosowanie czeka w opcjach konfiguracji celów. Jeśli za cel przyjmiemy przejście użytkownika pod inny adres URL — dobrze skonstruowane wyrażenie regularne pozwoli podpiąć pod ten cel cały zbiór adresów — na przykład wszystkie karty produktowe należące do danej kategorii.