Przykłady
- prosty wzorzec e-maila
[a-z0-9_.-]+@[a-z0-9_.-]+\.\w{2,4} - adres IP
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} - zawartość tagów
<TAG[^>]*>(.*?)</TAG> - kod pocztowy
[0-9]{2}-[0-9]{3}
Przykłady
[a-z0-9_.-]+@[a-z0-9_.-]+\.\w{2,4}\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}<TAG[^>]*>(.*?)</TAG>[0-9]{2}-[0-9]{3}Liczba powtórzeń
wyrażenie \d{3} oznacza dokładnie 3 cyfrywyrażenie \d{2,3} oznacza od 2 do 3 cyfrwyrażenie \d{3,} oznacza co najmniej 3 cyfrywyrażenie \d{,3} oznacza co najwyżej 3 cyfry
przykładowo mamy kod <div>Ala <div>ma kota</div>a kot ma ale </div> <div>.*<\/div> dopasuje cały tekst czyli<div>Ala <div>ma kota</div>a kot ma ale </div><div>.*?<\/div><div>Ala <div>ma kota</div>Składnia
do wyrażenia a.a można dopasować aua, ala, ada do wyrażenia w*akacje można dopasować akacje, wakacje, wwwwakacjedo wyrażenia nu+da można dopasować nuda, nuuda, nuuuuuuuuudado wyrażenie a?a można dopasować aa, awyrażenie mieszkam na ulicy (Wesołej)
takie wyrażenie zapamięta wartość w nawiasie czyli Wesołejdo wyrażenia [abcd]+ dopasujemy a, c, ab, acd, dacdo wyrażenia [a-p] dopasujemy dowolną literę z przedziału a-pdo wyrażenia Kopernik był (kobietą|mężczyzną) dopasujemy zarówno Kopernik był kobietą jak i Kopernik był mężczyznądo wyrażenia ^Ala
dopasujemy Ala ma kota ale już nie dopasujemy Kot ma Aledo wyrażenia Ale$ dopasujemy zdanie Kot ma Ale ale nie dopasuje już Ale gorąco\. lub \+
oznaczają tylko i wyłącznie kropkę i plus
Co to są wyrażenia regularne?
Wyrażenia regularne (regex) to wzorce służące do dopasowywania lub znajdowania łańcuchów symboli przy użyciu symboli wieloznacznych i metaznaków.
Gdzie mogą przydać się wyrażenia regularne? Wszędzie gdzie mamy w jakiś sposób u standaryzowaną strukturę danych.
Z czym to się je czyli jak wyglądają regexy:
[0-9]{2}-[0-9]{3} Kod pocztowy
[0-9]{9} lub \d{9} Pesel