PHP preg_match(): regulaaravaldised (regex)
Mis on regulaaravaldis PHP-s?
PHP regulaaravaldis tuntud ka kui regex, on võimsad mustrite sobitamise algoritmid, mida saab teostada ühes avaldises. Regulaaravaldised kasutavad keerukate avaldiste loomiseks aritmeetilisi operaatoreid, nagu (+,-,^). Need võivad aidata teil täita selliseid ülesandeid nagu e-posti aadresside, IP-aadresside jms kinnitamine.
Miks kasutada regulaaravaldisi
- PHP Regulaaravaldised lihtsustavad stringiandmete mustrite tuvastamist, kutsudes välja ühe funktsiooni. See säästab meile kodeerimisaega.
- Kui kontrollite kasutaja sisestatud e-posti aadressi, domeeninimesid, telefoninumbreid, IP-aadresse,
- 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 tavaliste funktsioonidega, mida õpime selles PHP regulaaravaldiste õpetuses. Vaatame PHP-s sagedamini kasutatavaid regulaaravaldise funktsioone.
- preg_match() PHP-s – seda funktsiooni kasutatakse PHP-s stringi mustrite sobitamiseks. See tagastab tõese, kui vaste leitakse, ja false, kui vastet ei leitud.
- preg_split() PHP-s – seda funktsiooni kasutatakse stringi mustri vastendamiseks ja seejärel tulemuste jagamiseks numbrimassiiviks
- preg_replace() PHP-s – seda funktsiooni kasutatakse stringi mustri vastendamiseks ja seejärel vaste asendamiseks määratud tekstiga.
Allpool on toodud regulaaravaldise funktsiooni süntaks, nagu PHP preg_match(), PHP preg_split() või PHP preg_replace().
<?php function_name('/pattern/',subject); ?>
SIIN,
- Funktsiooni_nimi(…) on kas PHP preg_match(), PHP preg_split() või PHP preg_replace().
- „/…/” Kaldkriipsud tähistavad meie PHP regex-testi funktsiooni algust ja lõppu
- „/muster/” on muster, mille peame sobitama
- „Teema” on tekstistring, millega vastendatakse
Vaatame nüüd praktilisi näiteid, mis rakendavad ülaltoodud PHP regex-funktsioone.
Preg_match() PHP-s
Esimene näide kasutab PHP-s funktsiooni preg_match(), et sooritada antud URL-is sõna guru jaoks lihtne mustri vaste.
Allolev kood näitab ülaltoodud näite jaoks testimisfunktsiooni preg_match() rakendamist.
<?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 URL-i http://localhost/phptuts/preg_match_simple.php
Uurime meie väljundi eest vastutavat koodi osa "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.
Allolev diagramm võtab kokku ülaltoodud punktid
PHP Preg_split()
Vaatame nüüd teist näidet, mis kasutab PHP funktsioonis preg_split().
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 URL-i http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Vaatame nüüd faili preg_replace(). 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 salvestanud faili preg_replace.php, brauser URL-ile http://localhost/phptuts/preg_replace.php
Regulaaravaldise metamärgid
Ülaltoodud näidetes kasutati väga lihtsaid mustreid; metamärgid võimaldavad meil lihtsalt sooritada keerukamaid mustrite vasteid, näiteks testida e-posti aadressi kehtivust. Vaatame nüüd sagedamini kasutatavaid 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 tähemärkide algusele või stringile / välistab tähemärgid | /^PH/ vastab mis tahes stringile, mis algab tähega PH |
$ | Sobib mustriga nööri otsas | /com$/ vastab guru99.com, yahoo.com jne. |
* | Vastab mis tahes nullile (0) või enamale tähemärgile | /com*/ sobib arvuti, side jne. |
+ | Eelnev(ad) märgi(d) ilmuvad vähemalt korra | /yah+oo/ vastab yahoole |
\ | Kasutatakse metamärkide põgenemiseks | /yahoo+\.com/ käsitleb punkti sõnasõnalise väärtusena |
[...] | Karakteriklass | /[abc]/ vastab abc |
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 meiliaadressi 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"; } ?>
Mustri „[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/] selgitamine ”
SIIN,
- “'/…/'” alustab ja lõpetab regulaaravaldise
- „^[a-zA-Z0-9._-]” vastab väikestele või suurtele tähtedele, numbritele vahemikus 0 kuni 9 ning punktidele, alakriipsudele või sidekriipsudele.
- "+@[a-zA-Z0-9-]" vastab sümbolile @, millele järgnevad väikesed või suured tähed, numbrid vahemikus 0 kuni 9 või sidekriipsud.
- „+\.[a-zA-Z.]{2,5}$/” eemaldab punkti, kasutades kaldkriipsu, ja sobitab seejärel mis tahes väike- või suurtähe, mille tähemärgi pikkus on vahemikus 2 kuni 5 stringi lõpus.
Sirvige URL-i http://localhost/phptuts/preg_match.php
Nagu näete ülaltoodud näite jaotusest, on metamärgid mustrite sobitamisel väga võimsad.
kokkuvõte
- PHP regulaaravaldis või regex on mustri sobitamise algoritm
- Regulaaravaldised on väga kasulikud valideerimiskontrollide tegemisel, silte ära tundvate HTML-mallisüsteemide loomisel jne.
- PHP on sisseehitatud funktsioonid, nimelt PHP preg_match(), PHP preg_split() ja PHP preg_replace(), mis toetavad regulaaravaldisi.
- Metamärgid võimaldavad meil luua keerulisi mustreid