traži:  
 php.com.hr > Vodič > Regularni izrazi

Regularni izrazi
 


PHP ima dvije grupe funkcija  koje koriste regularne izraze: PCRE sintaksa (PERL Compatible Regular Expressions) i POSIX proširenu sintaksu.

Za objašnjenje sintakse regularnih izraza upotrijebit ćemo funkciju ereg () koja vraća TRUE ako se regularan izraz nalazi unutar znakovne vrijednosti:

if  (ereg ("proba","ovo je proba"))
echo "Pronađena je proba";

Za listu znakova za koje se ne zahtjeva poklapanje upotrebljava se znak negacije ^ koji je potrebno postaviti unutar [] zagrada

Ovaj primjer vraća true jer provjerava da li se u varijabli $x nalaze alfanumerički znakovi

$x = &%$
$ima = ereg("[^0-9a-zA-Z]", $x);

Ako je znak ^ postavljen na bilo koje drugo mjesto osim na prvo tretira se kao običan znak.

Za znak minus možete zadati poklapanje ako se postavi na početak ili kraj liste.


Pomoću sidra se može zadati da se uzorak mora nalaziti na početku ili kraju vrijednosti. Znak ^ sidri uzorak na početak a znak $ na kraj vrijednosti.

Npr:
ereg ("^test",$var);
daje poklapanje za zankovne vrijednosti koje počinju slovima test

Ako u regularnom izrazu iza nekog znaka upišete operator ?, *, +, zadajete poklapanje za nula ili jednog, nula ili više, ili više znakova.

Znakom ? zadaje se 0 ili jedno ponavljanje određenog znaka
ereg ("te?t", $var)
Daje poklapanje za "te" , "tet" no ne i za  "test".

Znakom * zadaje se 0 ili više ponavljanje određenog znaka
ereg ("te*t", $var)
Daje poklapanje za "te" , "tet", "test" ili "tesssssst".

Znakom + zadaje se poklapanje za jedno ili više ponavljanje
ereg ("te+t", $var)
Daje poklapanje za "te" , "test" no ne i za  "tet".


Poduzorci se mogu grupirati zagradama i tako se operatori primjeniti na grupe umjesto na jedan znak.
Npr:
ereg ("(abc)+", $var);
Daje poklapanje za "abc", "abcabc" ili više...


Alternativni uzorci se zadaju pomoću operatora |

eregi ("\\.(gif|jpg|jpeg|png|bmp)$", $name))
// true za extenzije slika gif, jpg, jpeg, png, bmp


Razlika između funkcije ereg i eregi je u tome što eregi ne pravi razliku između velikih i malih slova.

 


Vodič
 
 © 2004 - 2008 php.com.hr