PHP preg_match(): Regularni izrazi (Regex)
โก Pametni saลพetak
Regularni izrazi u PHP-u su alati za usklaฤivanje uzoraka koji validiraju, dijele i zamjenjuju tekst u jednom izrazu. Ovaj vodiฤ pokriva osnovne funkcije preg_match, preg_split i preg_replace, objaลกnjava uobiฤajene metaznakove i korak po korak izraฤuje funkcionalni uzorak validacije e-poลกte.

ล to je regularni izraz u PHP-u?
PHP regularni izrazi, takoฤer poznati kao regex, moฤan su alat za usporedbu uzoraka koji se moลพe izvrลกiti u jednom izrazu. Regularni izrazi koriste posebne znakove poput +, - i ^ za stvaranje sloลพenih izraza. Mogu vam pomoฤi u izvrลกavanju zadataka kao ลกto su provjera valjanosti adresa e-poลกte, IP adresa i joลก mnogo toga.
Zaลกto koristiti regularne izraze
- PHP regularni izrazi pojednostavljuju prepoznavanje uzoraka u nizu podataka pozivanjem jedne funkcije. To nam ลกtedi vrijeme kodiranja.
- Prilikom provjere korisniฤkih unosa kao ลกto su adrese e-poลกte, nazivi domena, telefonski brojevi i IP adrese
- Oznaฤavanje kljuฤnih rijeฤi u rezultatima pretraลพivanja
- Prilikom izrade prilagoฤenog HTML predloลกka. Regex u PHP-u moลพe se koristiti za identifikaciju oznaka predloลพaka i njihovu zamjenu stvarnim podacima.
Ugraฤene funkcije regularnog izraza u PHP-u
PHP ima ugraฤene funkcije koje nam omoguฤuju rad s regularnim izrazima, ลกto ฤemo nauฤiti u ovom tutorialu. Pogledajmo ฤesto koriลกtene funkcije regularnih izraza u PHP-u.
- preg_match() u PHP-u โ ova se funkcija koristi za izvoฤenje podudaranja uzoraka na nizu znakova. Vraฤa vrijednost true ako se pronaฤe podudaranje, a false ako se podudaranje ne pronaฤe.
- preg_split() u PHP-u โ ova se funkcija koristi za pronalaลพenje uzorka na nizu znakova, a zatim za dijeljenje rezultata u numeriฤki niz.
- preg_replace() u PHP-u โ ova se funkcija koristi za izvoฤenje podudaranja uzorka niza i zatim zamjenu podudaranja navedenim tekstom.
U nastavku slijedi sintaksa za funkciju regularnog izraza kao ลกto su preg_match(), preg_split() ili preg_replace().
<?php
function_name('/pattern/',subject);
?>
OVDJE,
- โfunction_name(โฆ)โ je ili preg_match(), preg_split() ili preg_replace().
- โ/โฆ/โ kose crte oznaฤavaju poฤetak i kraj naลกeg regularnog izraza
- โ'/uzorak/'โ je uzorak koji trebamo pronaฤi
- "subject" je tekstualni niz s kojim se treba usporediti
Pogledajmo sada praktiฤne primjere koji implementiraju gore navedene PHP regex funkcije.
Preg_match() u PHP-u
Prvi primjer koristi funkciju preg_match() za jednostavno pronalaลพenje uzorka za rijeฤ guru u zadanom URL.
Donji kod prikazuje implementaciju funkcije preg_match() za gornji primjer.
<?php $my_url = "www.guru99.com"; if (preg_match("/guru/", $my_url)) { echo "the url $my_url contains guru"; } else { echo "the url $my_url does not contain guru"; } ?>
Pregledajte URL http://localhost/phptuts/preg_match_simple.php
Ispitajmo dio koda koji je odgovoran za naลก izlaz, preg_match('/guru/', $my_url)OVDJE,
- โpreg_match(โฆ)โ je funkcija PHP regularnog izraza
- โ'/guru/'โ je uzorak regularnog izraza koji treba pronaฤi
- โ$my_urlโ je varijabla koja sadrลพi tekst koji treba usporediti.
PHP Preg_split()
Pogledajmo sada joลก jedan primjer koji koristi funkciju preg_split().
Uzet ฤemo string frazu i rastaviti je u niz; uzorak koji treba uskladiti je jedan razmak.
Tekstni niz koji ฤe se koristiti u ovom primjeru je "Volim regularne izraze".
Kod u nastavku ilustrira implementaciju gornjeg primjera.
<?php $my_text = "I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Pregledajte URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Pogledajmo sada preg_replace() PHP funkcije koji izvodi podudaranje uzorka i zatim zamjenjuje uzorak neฤim drugim.
Kod u nastavku traลพi rijeฤ guru u a niz.
Zamjenjuje rijeฤ guru rijeฤju guru okruลพenom CSS kodom koji istiฤe boju pozadine.
<?php $text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com"; $text = preg_replace("/Guru/", '<span style="background:yellow">Guru</span>', $text); echo $text; ?>
Pod pretpostavkom da ste spremili datoteku preg_replace.php, idite do URL http://localhost/phptuts/preg_replace.php
Metaznakovi regularnog izraza
U gornjim primjerima koriลกteni su vrlo osnovni obrasci. Metaznakovi nam omoguฤuju izvoฤenje sloลพenijih podudaranja uzoraka, kao ลกto je testiranje valjanosti adrese e-poลกte. Pogledajmo sada ฤesto koriลกtene metaznakove.
| Metaznak | Description | Primjer |
|---|---|---|
| . | Odgovara bilo kojem pojedinaฤnom znaku osim novom retku | /./ odgovara bilo ฤemu ลกto ima jedan znak |
| ^ | Odgovara poฤetku niza ili iskljuฤuje znakove | /^PH/ odgovara bilo kojem nizu koji poฤinje s PH |
| $ | Odgovara uzorku na kraju niza | /com$/ odgovara guru99.com, yahoo.com itd. |
| * | Ne podudara se s nula ili viลกe prethodnih znakova | /com*/ odgovara raฤunalu, komunikaciji itd. |
| + | Zahtijeva da se prethodni znak(ovi) pojave barem jednom | /yah+oo/ odgovara yahoo |
| \ | Koristi se za izbjegavanje metaznakova | /yahoo+\.com/ tretira toฤku kao doslovnu vrijednost |
| [...] | Klasa karaktera | /[abc]/ odgovara a, b ili c |
| AZ | Odgovara malim slovima | /az/ odgovara cool, happy itd. |
| AZ | Odgovara velikim slovima | /AZ/ odgovara ล TO, KAKO, ZAล TO itd. |
| 0-9 | Odgovara bilo kojem broju izmeฤu 0 i 9 | /0-4/ odgovara 0,1,2,3,4 |
Gornji popis daje samo najฤeลกฤe koriลกtene metaznakove u regularnim izrazima.
Pogledajmo sada priliฤno sloลพen primjer koji provjerava valjanost adrese e-poลกte.
<?php $my_email = "name@company.com"; if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) { echo "$my_email is a valid email address"; } else { echo "$my_email is NOT a valid email address"; } ?>
Objaลกnjenje obrasca validacije e-poลกte
OVDJE,
- "/โฆ/" zapoฤinje i zavrลกava regularni izraz
- โ^[a-zA-Z0-9._-]โ odgovara bilo kojem malom ili velikom slovu, brojevima izmeฤu 0 i 9 te toฤkama, podvlakama ili crticama.
- โ+@[a-zA-Z0-9-]โ odgovara simbolu @ nakon kojeg slijede mala ili velika slova, brojevi izmeฤu 0 i 9 ili crtice.
- โ+\.[a-zA-Z.]{2,5}$/โ izbjegne toฤku pomoฤu obrnute kose crte, a zatim na kraju niza pronaฤe bilo koje malo ili veliko slovo s duljinom znaka izmeฤu 2 i 5.
Pregledajte URL http://localhost/phptuts/preg_match.php
Kao ลกto moลพete vidjeti iz gornje analize, metakarakteri su vrlo moฤni kada je u pitanju usklaฤivanje uzoraka.




