PHP preg_match(): Regularni izrazi (Regex)
Što je regularni izraz u PHP-u?
PHP regularni izraz poznat i kao regex je moćan algoritam za usklađivanje uzoraka koji se može izvesti u jednom izrazu. Regularni izrazi koriste aritmetičke operatore kao što su (+,-,^) za stvaranje složenih izraza. Oni vam mogu pomoći da izvršite zadatke kao što je provjera valjanosti adresa e-pošte, IP adresa itd.
Zašto koristiti regularne izraze
- PHP regularni izrazi pojednostavljuju prepoznavanje uzoraka u podacima niza pozivanjem jedne funkcije. To nam štedi vrijeme kodiranja.
- Prilikom provjere korisničkih unosa kao što su adresa e-pošte, nazivi domena, telefonski brojevi, 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 funkcijama koje ćemo naučiti u ovom vodiču o PHP regularnim izrazima. Pogledajmo najčešće korištene funkcije regularnih izraza u PHP-u.
- preg_match() u PHP-u – ova se funkcija koristi za izvođenje podudaranja uzorka u PHP-u na nizu. Vraća true ako se pronađe podudaranje i false ako podudaranje nije pronađeno.
- preg_split() u PHP-u – ova se funkcija koristi za izvođenje podudaranja uzorka niza i potom 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.
Ispod je sintaksa za funkciju regularnog izraza kao što je PHP preg_match(), PHP preg_split() ili PHP preg_replace().
<?php function_name('/pattern/',subject); ?>
OVDJE,
- “function_name(…)” je ili PHP preg_match(), PHP preg_split() ili PHP preg_replace().
- “/…/” Kose crte označavaju početak i kraj naše PHP funkcije testera regularnih izraza
- “'/uzorak/'” je obrazac koji trebamo uskladiti
- "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 preg_match() u PHP funkciji za izvođenje jednostavnog podudaranja uzorka za riječ guru u danom URL-u.
Kôd u nastavku prikazuje implementaciju funkcije testera 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"; } ?>
Dođite do URL-a http://localhost/phptuts/preg_match_simple.php
Ispitajmo dio koda 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.
Donji dijagram sažima gore navedene točke
PHP Preg_split()
Pogledajmo sada još jedan primjer koji koristi preg_split() u PHP funkciji.
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 ); ?>
Dođite do URL-a http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Pogledajmo sada preg_replace() u 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, preglednik na URL http://localhost/phptuts/preg_replace.php
Metaznakovi regularnog izraza
Gornji primjeri koristili su vrlo osnovne uzorke; metaznakovi nam jednostavno omogućuju izvođenje složenijih podudaranja uzoraka kao što je testiranje valjanosti adrese e-pošte. Pogledajmo sada metaznakove koji se često koriste.
Metaznak | Description | Primjer |
---|---|---|
. | Odgovara bilo kojem pojedinačnom znaku osim novom retku | /./ odgovara bilo čemu što ima jedan znak |
^ | Odgovara početku ili nizu / 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. |
* | Odgovara bilo kojoj nuli (0) ili više znakova | /com*/ odgovara računalu, komunikaciji itd. |
+ | Zahtijeva da se prethodni znakovi pojave barem jednom | /yah+oo/ odgovara yahoo |
\ | Koristi se za izbjegavanje meta znakova | /yahoo+\.com/ tretira točku kao doslovnu vrijednost |
[...] | Klasa karaktera | /[abc]/ odgovara abc |
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šnjavajući obrazac “[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/] ”
OVDJE,
- “'/…/'” počinje i završava regularni izraz
- “^[a-zA-Z0-9._-]” odgovara svim malim ili velikim slovima, brojevima između 0 i 9 i 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}$/” izbjegava točku koristeći obrnutu kosu crtu, a zatim odgovara svim malim ili velikim slovima s duljinom znaka između 2 i 5 na kraju niza.
Dođite do URL-a http://localhost/phptuts/preg_match.php
Kao što možete vidjeti iz gornjeg primjera raščlambe, metakarakteri su vrlo moćni kada se radi o podudaranju uzoraka.
rezime
- Regularni izraz ili regularni izraz u PHP-u algoritam je podudaranja uzorka
- Regularni izrazi vrlo su korisni prilikom izvođenja provjera valjanosti, stvaranja sustava HTML predložaka koji prepoznaju oznake itd.
- PHP ima ugrađene funkcije PHP preg_match(), PHP preg_split() i PHP preg_replace() koje podržavaju regularne izraze.
- Metaznakovi nam omogućuju stvaranje složenih obrazaca