PHP preg_match(): regulaaravaldised (regex)
โก Nutikas kokkuvรตte
PHP regulaaravaldised on mustrite sobitamise tรถรถriistad, mis valideerivad, jagavad ja asendavad teksti รผhes avaldises. See juhend hรตlmab pรตhifunktsioone preg_match, preg_split ja preg_replace, selgitab levinumaid metamรคrke ja loob samm-sammult toimiva e-posti valideerimismustri.

Mis on regulaaravaldis PHP-s?
PHP regulaaravaldised, tuntud ka kui regulaaravaldised, on vรตimas mustrite sobitamise tรถรถriist, mida saab teostada รผhes avaldises. Regulaaravaldised kasutavad keerukate avaldiste loomiseks erimรคrke, nรคiteks +, - ja ^. Need aitavad teil tรคita selliseid รผlesandeid nagu e-posti aadresside, IP-aadresside ja muu valideerimine.
Miks kasutada regulaaravaldisi
- PHP regulaaravaldised lihtsustavad mustrite tuvastamist stringandmetes, kutsudes vรคlja รผhe funktsiooni. See sรครคstab meie kodeerimisaega.
- Kasutaja sisestatud andmete (nt e-posti aadresside, domeeninimede, telefoninumbrite ja IP-aadresside) valideerimisel
- Mรคrksรตnade esiletรตstmine otsingutulemustes
- Kohandatud HTML-malli loomisel. PHP regexi abil saab tuvastada mallisilte ja asendada need tegelike andmetega.
Sisseehitatud regulaaravaldise funktsioonid PHP-s
PHP-l on sisseehitatud funktsioonid, mis vรตimaldavad meil tรถรถtada regulaaravaldistega, mida me selles รตpetuses รตpime. Vaatame PHP-s kรตige sagedamini kasutatavaid regulaaravaldiste funktsioone.
- preg_match() PHP-s โ seda funktsiooni kasutatakse stringi mustri sobitamiseks. See tagastab vรครคrtuse โtrueโ, kui vaste leitakse, ja vรครคrtuse โfalseโ, kui vastet ei leita.
- preg_split() PHP-s โ seda funktsiooni kasutatakse stringi mustri sobitamiseks ja seejรคrel tulemuste jagamiseks numbriliseks massiiviks.
- preg_replace() PHP-s โ seda funktsiooni kasutatakse stringi mustri vastendamiseks ja seejรคrel vaste asendamiseks mรครคratud tekstiga.
Allpool on toodud regulaaravaldise funktsiooni, nรคiteks preg_match(), preg_split() vรตi preg_replace() sรผntaks.
<?php
function_name('/pattern/',subject);
?>
SIIN,
- โfunction_name(โฆ)โ on kas preg_match(), preg_split() vรตi preg_replace().
- Kaldkriipsud โ/โฆ/โ tรคhistavad meie regulaaravaldise algust ja lรตppu
- โ'/pattern/'โ on muster, millele peame vaste leidma
- โTeemaโ on tekstistring, millega vastendatakse
Vaatame nรผรผd praktilisi nรคiteid, mis rakendavad รผlaltoodud PHP regulaaravaldiste funktsioone.
Preg_match() PHP-s
Esimeses nรคites kasutatakse preg_match() funktsiooni, et sooritada antud sรตna guru lihtsa mustriotsingu. URL.
Allolev kood nรคitab preg_match() funktsiooni rakendamist รผlaltoodud nรคites.
<?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"; } ?>
Sirvige jaotist URL http://localhost/phptuts/preg_match_simple.php
Vaatleme koodi osa, mis vastutab meie vรคljundi eest, preg_match('/guru/', $minu_url)SIIN
- "preg_match(โฆ)" on PHP regex-funktsioon
- โ/guru/โ on sobitatav regulaaravaldise muster
- โ$my_urlโ on muutuja, mis sisaldab vastendatavat teksti.
PHP Preg_split()
Vaatame nรผรผd teist nรคidet, mis kasutab preg_split() funktsiooni.
Me vรตtame stringfraasi ja plahvatame selle massiiviks; sobitatav muster on รผks tรผhik.
Selles nรคites kasutatav tekstistring on "Ma armastan regulaaravaldisi".
Allolev kood illustreerib รผlaltoodud nรคite rakendamist.
<?php $my_text = "I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Sirvige jaotist URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Vaatame nรผรผd preg_replace() funktsiooni. PHP funktsioon mis viib lรคbi mustri vaste ja seejรคrel asendab mustri millegi muuga.
Allolev kood otsib sรตna guru keeles a nรถรถr.
See asendab sรตna guru sรตnaga guru, mida รผmbritseb CSS-kood, mis tรตstab esile taustavรคrvi.
<?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; ?>
Eeldades, et olete faili preg_replace.php salvestanud, sirvige faili URL http://localhost/phptuts/preg_replace.php
Regulaaravaldise metamรคrgid
รlaltoodud nรคidetes kasutati vรคga lihtsaid mustreid. Metamรคrgid vรตimaldavad meil teha keerukamaid mustrivasteid, nรคiteks testida e-posti aadressi kehtivust. Vaatame nรผรผd levinumaid metamรคrke.
| Metakarakter | Kirjeldus | Nรคide |
|---|---|---|
| . | Vastab mis tahes รผksikule mรคrgile, vรคlja arvatud uus rida | /./ sobib kรตigega, millel on รผks mรคrk |
| ^ | Vastab stringi algusele vรตi jรคtab tรคhemรคrgid vรคlja | /^PH/ vastab mis tahes stringile, mis algab tรคhega PH |
| $ | Vastab mustrile stringi lรตpus | /com$/ vastab otsingumootoritele guru99.com, yahoo.com jne. |
| * | Vastab nullile vรตi enamale eelnevale tรคhemรคrgile | /com*/ sobib arvuti, side jne. |
| + | Eelnev(ad) tรคhemรคrk(id) peavad esinema vรคhemalt รผks kord | /yah+oo/ vastab yahoole |
| \ | Kasutatakse metategelaste eest pรตgenemiseks | /yahoo+\.com/ kรคsitleb punkti sรตnasรตnalise vรครคrtusena |
| [...] | Karakteriklass | /[abc]/ vastab a-le, b-le vรตi c-le |
| Tรคhestik | Sobib vรคiketรคhtedega | /az/ sobib cool, happy jne. |
| AZ | Sobib suurtรคhtedega | /AZ/ vastab WHAT, KUIDAS, MIKS jne. |
| 0-9 | Sobib mis tahes arvule vahemikus 0 kuni 9 | /0-4/ vastab 0,1,2,3,4 |
รlaltoodud loend sisaldab ainult regulaaravaldistes kรตige sagedamini kasutatavaid metamรคrke.
Vaatame nรผรผd รผsna keerulist nรคidet, mis kontrollib e-posti aadressi kehtivust.
<?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"; } ?>
E-posti valideerimismustri selgitamine
SIIN,
- โ/โฆ/โ alustab ja lรตpetab regulaaravaldise
- โ^[a-zA-Z0-9._-]โ leiab vasted kรตikidele vรคike- vรตi suurtรคhtedele, numbritele vahemikus 0 kuni 9 ning punktidele, alakriipsudele vรตi kriipsudele.
- โ+@[a-zA-Z0-9-]โ vastab @-sรผmbolile, millele jรคrgnevad suur- vรตi vรคiketรคhed, numbrid vahemikus 0 kuni 9 vรตi kriipsud.
- โ+\.[a-zA-Z.]{2,5}$/โ asendab punkti kaldkriipsuga ja seejรคrel leiab stringi lรตpust kรตik vรคike- vรตi suurtรคhed pikkusega 2 kuni 5.
Sirvige jaotist URL http://localhost/phptuts/preg_match.php
Nagu รผlaltoodud jaotusest nรคha, on metategelased mustrite sobitamisel vรคga vรตimsad.




