Regex IS easy

Wiele razy spotykałem się z opinią, że znajomość regexów, to wiedza tajemna, regexy są okropne, nie da się ich ogarnąć. W tym krótkim poście chciałbym przedstawić jak w prosty sposób zacząć przygodę z wyrażeniami regularnymi.

Po co mi wyrażenia regularne?

Przydają się właściwie do wszystkiego, co związane z tekstem: dokumentów, kodu, logów. Dzięki temu w prosty sposób możesz znaleźć lub zastąpić interesujący Cię wzór [pattern], a nie konkretny zwrot.

Przykład: W pliku konfiguracyjnym masz wpisane IP do serwerów, z którymi ma łączyć się Twoja aplikacja. Dla celów testowych chcesz zamienić wszystkie adresy IP na localhost. Bez znajomości wyrażeń regularnych zajęłoby to Tobie dość sporo czasu – im więcej adresów do zmiany, tym więcej pracy. Z wyrażeniami regularnymi jest to dosłownie jedna operacja (https://regex101.com/r/pL7vB4/1).

Jak zacząć?

Od podstawowych tokenów \d lub [0-9] – cyfra z zakresu 0 – 9 \w lub [a-zA-Z0-9] – znak; wszystkie litery alfabetu oraz cyfry . – dowolny znak [^a] – dowolny znak, który nie jest „a” \s – dowolny whitespace (spacja, znak nowej linii, itp.) (…) – „capture group”; dodaje złapaną frazę do grupy – np. (\w+) dodaje jeden lub więcej znaków do grupy

Od atrybutów tokenów ?, np. .? – jeden lub zero znaków +, np. .+ – jeden lub więcej znaków *, np. .* – zero lub więcej znaków {min, max}, np. .{3,} – 3 lub więcej znaków

I zastosowań grup \0 – „match”; dotyczy całego stringa, który został objęty regexem, bez względu na grupy \x – „group x”; wypisuje grupę numer „x”

Więcej tokenów znajdziesz na Regex101 po prawej stronie na dole, w sekcji „Quick Reference”

Znam tokeny, co teraz?

Regex to tak naprawdę (poza rzeczywistym pisaniem konkretnych wyrażeń) umiejętność wykorzystania sztuczek i praktyka. Zacznij trenować np. przez wyszukiwanie konkretnych informacji w logach – np. wyszukaj wszystkie wpisy z datą 01-01-2015. – https://regex101.com/r/jY2vS1/1. Albo spróbuj zamienić dane w tabelce excellowej w proste zapytanie SQL – https://regex101.com/r/jY2vS1/2

Rozwiązań i pomysłów jest wiele. Nie bój się pytać jak coś zrobić, jednak najpierw spróbuj samemu. Im więcej będziesz ćwiczył/a, tym mniej będziesz się bać „strasznego” regexa. Może za niedługo, tak jak ja, nie będziesz sobie wyobrażał/a bez niego pracy. Na początku wygląda to jak ciężki do zrozumienia makaron. Z czasem jednak zaczniesz zauważać w tym wszystkim sens.

Tak więc: do pracy, rodacy!

Polecane strony:

3 thoughts on “Regex IS easy

Odpowiedz na „meaninAnuluj pisanie odpowiedzi

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *