Skip to content

Wyrażenia regularne (Regexy)

Świetna strona do ekspreymentowania z wyrażeniami regularnymi Regex101 Ściągawka z BulldogJobs https://bulldogjob.pl/readme/samouczek-regex-sciagawka-z-przykladami

Znaki

symbol Opis
\s whitespace
\S nie whitespace
\d cyfra
\D nie cyfra
\w słowo
\W nie słowo
\n nowa linia
\t tabulacja
\A Początek wyrażenia
$ koniec wyrażenia lub/EOL/EOF
\Z koniec wyrażenia
. Jakikolwiek znak (nie licząc nowej linii \n)
\. Kropka . (w grepie jednak trzeba dać \\.

Znaki specjalne: ^ [ . $ { * ( \+ ) | ? < >
Do ich escape'owania na ogół wystarcza \.

Grupy i zakresy

[a-c] znaki z zakresu a-c. Mogą być łączone w większe grupy (np. [a-deA-D1-4])
[^a-c] Zaprzeczenie znakom z danego zakresu (nie a nie b i nie c)
(aIbIc) Alternatywa a lub lub c (zamiast I powinny tam być linie pionowe)
* Znak/wyrażenie znajdujący się przed gwiazdką może pojawić się dowolną ilość razy
+ Znak/wyrażenie sprzed plusa pojawi się dowolnie wiele razy (ale co najmniej 1 raz)
? Znak/wyrażenie pojawia się 0 lub 1 raz
(?!slowo) zaprzeczenie - wyklucz wyniki zawierające slowo (negative lookahead)
I alternatywa(nie litera i, lecz beleczka) - rzecz polewej albo po prawej

Podmienianie znaków

Używając regexów można w łatwy sposób podmieniać części naszych wyrażeń na inne.

Wystarczy tutaj opakować część wyrażenia, którą chcemy wymienić w nawiasy () i potem w wyrażeniu docelowym możemy się odwoływać do zawartości poszczególnych nawiasów.

Najbardziej przydatne odwołania:

$1, $2 Pierwszy, drugi nawias
$& Całe wyrażenie
Find        Carrots(With)Dip(Are)Yummy
Replace     Bananas$1Mustard$2Gross
Result      BananasWithMustardAreGross