PHP preg_match(): Reguláris kifejezések (Regex)
Mi a reguláris kifejezés a PHP-ben?
PHP reguláris kifejezés más néven regex hatékony mintaillesztő algoritmus, amely egyetlen kifejezésben végrehajtható. A reguláris kifejezések aritmetikai operátorokat használnak, például (+,-,^) összetett kifejezések létrehozásához. Segíthetnek olyan feladatok elvégzésében, mint például az e-mail-címek, IP-címek ellenőrzése stb.
Miért használjunk reguláris kifejezéseket?
- PHP A reguláris kifejezések egyszerűsítik a minták azonosítását a karakterlánc-adatokban egyetlen függvény meghívásával. Ezzel kódolási időt takarítunk meg.
- A felhasználói bevitel, például e-mail cím, domain nevek, telefonszámok, IP-címek,
- Kulcsszavak kiemelése a keresési eredmények között
- Egyéni HTML-sablon létrehozásakor. A PHP Regex segítségével azonosíthatók a sabloncímkék, és tényleges adatokkal helyettesíthetők.
Beépített reguláris kifejezés függvények a PHP-ben
A PHP beépített függvényeket tartalmaz, amelyek lehetővé teszik számunkra, hogy reguláris függvényekkel dolgozzunk, amelyeket ebben a PHP Regular Expressions oktatóanyagban fogunk megtanulni. Nézzük meg a PHP-ben gyakran használt reguláris kifejezés függvényeket.
- preg_match() PHP-ben – ez a függvény a mintaillesztés végrehajtására szolgál PHP-ben egy karakterláncon. Igaz, ha egyezés található, és hamis, ha nem található.
- preg_split() PHP-ben – ez a függvény mintaegyeztetés végrehajtására szolgál egy karakterláncon, majd az eredményeket felosztja egy numerikus tömbre
- preg_replace() PHP-ben – ez a függvény egy karakterlánc mintaegyeztetésére szolgál, majd az egyezést a megadott szövegre cseréli.
Az alábbiakban a reguláris kifejezés függvények szintaxisa látható, mint például a PHP preg_match(), PHP preg_split() vagy PHP preg_replace().
<?php function_name('/pattern/',subject); ?>
ITT,
- A „függvény_neve(…)” vagy PHP preg_match(), PHP preg_split() vagy PHP preg_replace().
- „/…/” A perjelek a PHP regex-tesztelő függvényünk kezdetét és végét jelölik
- A „'/pattern/'” az a minta, amelyet egyeztetnünk kell
- A „tárgy” az a szöveges karakterlánc, amelyhez illeszkedni kell
Lássunk most gyakorlati példákat, amelyek megvalósítják a fenti PHP regex függvényeket.
Preg_match() PHP-ben
Az első példa a PHP preg_match() függvényét használja, hogy egyszerű mintaegyeztetést hajtson végre a guru szóhoz egy adott URL-ben.
Az alábbi kód a preg_match() tesztelő függvény megvalósítását mutatja a fenti példában.
<?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"; } ?>
Keresse meg az URL-t http://localhost/phptuts/preg_match_simple.php
Vizsgáljuk meg a kódnak a kimenetünkért felelős részét.preg_match('/guru/', $my_url)” ITT,
- A „preg_match(…)” a PHP regex függvénye
- A „'/guru/'” az egyeztetendő reguláris kifejezés mintája
- A „$my_url” az a változó, amely az egyeztetendő szöveget tartalmazza.
Az alábbi ábra a fenti pontokat foglalja össze
PHP Preg_split()
Nézzünk most egy másik példát, amely a preg_split() függvényt használja a PHP-ben.
Fogunk egy string kifejezést, és egy tömbbe robbantjuk fel; az egyeztetendő minta egyetlen szóköz.
A példában használandó szöveg: „Imádom a reguláris kifejezéseket”.
Az alábbi kód a fenti példa megvalósítását szemlélteti.
<?php $my_text="I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Keresse meg az URL-t http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Most nézzük meg a preg_replace() függvényt PHP függvény amely végrehajtja a mintaegyeztetést, majd lecseréli a mintát valami másra.
Az alábbi kód a guru szót keresi a húr.
A guru szót a guru szóra cseréli, css kóddal körülvéve, amely kiemeli a háttérszínt.
<?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; ?>
Feltételezve, hogy elmentette a preg_replace.php fájlt, a böngésző az URL-be http://localhost/phptuts/preg_replace.php
Reguláris kifejezés metakarakterei
A fenti példák nagyon egyszerű mintákat használtak; A metakarakterek egyszerűen lehetővé teszik számunkra, hogy bonyolultabb mintaegyeztetéseket hajtsunk végre, például egy e-mail cím érvényességének tesztelését. Nézzük most a gyakran használt metakaraktereket.
Metakarakter | Leírás | Példa |
---|---|---|
. | Bármely karakterrel egyezik, kivéve egy új sort | /./ mindenre egyezik, aminek egyetlen karaktere van |
^ | Megfelel a karakterek elejének vagy karakterláncának / kizárja a karaktereket | A /^PH/ bármely PH-val kezdődő karakterláncra illeszkedik |
$ | Illik a zsinór végén lévő mintához | /com$/ megfelel a guru99.com, yahoo.com stb. |
* | Bármely nulla (0) vagy több karakternek megfelel | /com*/ megfelel a számítógépnek, a kommunikációnak stb. |
+ | Megköveteli, hogy az előző karakter(ek) legalább egyszer megjelenjenek | /yah+oo/ egyezik a yahoo-val |
\ | A meta karakterek elkerülésére szolgál | A /yahoo+\.com/ a pontot literális értékként kezeli |
[...] | Karakter osztály | /[abc]/ egyezik az abc-vel |
AZ | Kisbetűknek felel meg | /az/ a cool, happy stb. |
AZ | Megfelel a nagybetűknek | /AZ/ a MIT, HOGYAN, MIÉRT stb. |
0-9 | 0 és 9 közötti tetszőleges számnak felel meg | /0-4/ találat 0,1,2,3,4 |
A fenti lista csak a reguláris kifejezésekben leggyakrabban használt metakaraktereket tartalmazza.
Nézzünk most egy meglehetősen összetett példát, amely egy e-mail cím érvényességét ellenőrzi.
<?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"; } ?>
A minta magyarázata: „[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/] ”
ITT,
- A „'/…/'” elindítja és befejezi a reguláris kifejezést
- Az „^[a-zA-Z0-9._-]” megfelel bármilyen kis- és nagybetűnek, 0 és 9 közötti számnak, valamint pontoknak, aláhúzásjeleknek vagy kötőjeleknek.
- A „+@[a-zA-Z0-9-]” megfelel a @ szimbólumnak, amelyet kis- vagy nagybetűk, 0 és 9 közötti számok vagy kötőjelek követnek.
- A „+\.[a-zA-Z.]{2,5}$/” a pont helyett fordított perjelet használ, majd a karakterlánc végén 2 és 5 közötti karakterhosszúságú kis- vagy nagybetűket egyeztet.
Keresse meg az URL-t http://localhost/phptuts/preg_match.php
Amint a fenti példa szerinti lebontásból is látható, a metakarakterek nagyon erősek, ha a minták illeszkedéséről van szó.
Összegzésként
- A PHP reguláris kifejezése vagy reguláris kifejezése mintaegyeztetési algoritmus
- A reguláris kifejezések nagyon hasznosak érvényesítési ellenőrzések végrehajtásakor, HTML-sablonrendszerek létrehozásakor, amelyek felismerik a címkéket stb.
- PHP beépített függvényeket tartalmaz, nevezetesen a PHP preg_match(), a PHP preg_split() és a PHP preg_replace() függvényeket, amelyek támogatják a reguláris kifejezéseket.
- A metakarakterek lehetővé teszik számunkra, hogy összetett mintákat hozzunk létre