Wyrażenia regularne w PHP #1 (teoria)

Wyrażenie regularne to sposób na zapisanie danego fragmentu tekstu. Na początku mogą się one wydawać trudne do zrozumienia, ale po pewnym czasie można zobaczyć jakie możliwości dają w praktyce. Ogólnie mówiąc wyrażenia służą do walidacji danych wysyłanych przy pomocy formularzy. Mozna je oczywiście wykorzystać w innych miejscach, ale formularze to najbardziej popularne zastosowanie (najłatwiej można zauważyć sens).

Przy pomocy wyrażeń regularnych możemy sprawdzić czy wpisany adres e-mail jest zgodny ze stanem faktycznym. Oczywiście nie mamy w tym momencie możliwości sprawdzić czy rzeczywiście dany e-mail istnieje na konkretnym serwerze, ale możemy ustosunkować się do formalnego zapisu. Więcej informacji od strony praktycznej będzie w drugim wpisie na ten temat.

Na początku warto zacząć od podstaw:

Symbol Znaczenie More
[a-z] Klasa znaków odnosząca się do jednego znaku Klasa znaków może być pisana wielkimi literami, np. [A-Z] lub małymi [a-z].
[abcdeqpz] Klasa znaków odnosząca się do jednego znaku Klasa znaków zawierająca litery, które mogą być danym symbolem
[a-zA-z] Zbiór zakresów znaków odnosząca się do jednego znaku Oznacza wszystkie litery małe i duże
[^a-b] Zbiór znaków, które nie mogą reprezentować symbolu Elementami nie może być litera od a do b. Znak ^ w nawiasach kwadratowych oznacza wyłączenie
[[:alnum:]] Znaki alfanumeryczne
[[:alpha:]] Znaki alfabetu
[[:lower:]] małe litery
[[:upper:]] Wielkie litery
[[:cntrl:]] Znaki kontrolne
[[:print:]] Wszystkie możliwe znaki do wyświetlenia
[[:digit:]] Liczby dziesiętne
[[:graph:]] Wszystkie możliwe znaki do wyświetlenia poza spacjami
[[:xdigit:]] Liczby szesnastkowe
[[:space:]] Pusta przestrzeń
[[:punct:]] Znaki przestankowe
[[:blank:]] Taulatory i spacje

Znaki specjalne

Znak Opis
^ dopasowanie na początku ciągu
$ dopasowanie na końcu ciągu
\ znak ucieczki przed używaniem znaków specjalnych
( początek podciągu
) koniec podciągu
| używanie alternatywnych możliwości
* powtórzenie od 0 do nieskończoności
+ powtórzenie od 1 do nieskończoności
{ początek kwantyfikatora
} koniec kwantyfikatora
? oznaczenie podwzorca jako domyślnego
. dopasowanie do każdego znaku bez nowego wiersza
^ przeciwność jeżeli użyte przed wyrażeniem (używane w nawiasach kwadratowych)
określa zakres znaków

Powtarzanie

[[:upper:]]+ Występowanie dużej litery minimum jeden raz Znak “+” po klasie oznacza ilość powtarzających się znaków dla danej klasy
[[:lower:]]* Występowanie małej litery 0 lub więcej razy Znak “*” po klasie oznacza ilość powtarzających się znaków dla danej klasy

Podwyrażenia

(a)* tom

Znak w nawiasie zostanie powtórzy od 0 w nieskończoność (decyduje o tym gwiazdka).

Zakresy powtórzeń

Ilość powtórzeń określają liczby w nawisach klamrowych “{}”, np.

(ab){2} – dwa powtórzenia ciągu “ab”, czyli: ‘ab’, ‘ab’

(ab){2..4} – od 2 do 4 powtórzeń ciągu “ab”, czyli ‘ab’,’ab’,’ab’ i ‘ab’

(ab){2.} – od 2 powtórzeń ciągu “ab”, czyli ‘ab’,’ab’,’ab’… ‘ab’

Możliwość wyboru

Możliwość wyboru to tak jakby używanie słowa “lub”, np. @|at. Jeżeli użytkownik użyje jedno z w/w znaków to będzie dane pasować do wyrażenia regularnego. Teraz się to wydaje trochę dziwne i mało zrozumiałe, ale na późniejszych przykładach praktycznych będzie można łatwiej to zrozumieć.

regularne

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.