PHP preg_match(): Reguláris kifejezések (Regex)
⚡ Okos összefoglaló
A PHP reguláris kifejezései mintaillesztő eszközök, amelyek egyetlen kifejezésben lévő szöveget validálnak, felosztanak és kicserélnek. Ez az útmutató a preg_match, preg_split és preg_replace alapfüggvényeket ismerteti, elmagyarázza a gyakori metakaraktereket, és lépésről lépésre bemutat egy működő e-mail-validációs mintát.

Mi a reguláris kifejezés PHP-ben?
PHP reguláris kifejezésekA reguláris kifejezések, más néven regexek, egy hatékony mintaillesztő eszköz, amely egyetlen kifejezésben is végrehajtható. A reguláris kifejezések speciális karaktereket, például +, - és ^ jeleket használnak összetett kifejezések létrehozásához. Segíthetnek olyan feladatok elvégzésében, mint az e-mail címek, IP-címek és egyebek ellenőrzése.
Miért használjunk reguláris kifejezéseket?
- A PHP reguláris kifejezések egyetlen függvény meghívásával leegyszerűsítik a karakterlánc adatokban lévő minták azonosítását. Ez kódolási időt takarít meg.
- Felhasználói bevitel, például e-mail címek, domainnevek, telefonszámok és IP-címek érvényesítésekor
- 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ényekkel rendelkezik, amelyek lehetővé teszik a reguláris kifejezésekkel való munkát, amelyeket ebben az oktatóanyagban fogunk megismerni. Nézzük meg a PHP-ben gyakran használt reguláris kifejezésfüggvényeket.
- preg_match() PHP-ben – ez a függvény karakterláncok mintaillesztésére szolgál. Igaz értéket ad vissza, ha egyezést talál, és hamis értéket, ha nem található egyezés.
- preg_split() PHP-ben – ez a függvény egy karakterlánc mintaillesztésére szolgál, majd az eredményeket egy numerikus tömbbe osztja fel.
- 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 egy reguláris kifejezésfüggvény szintaxisát láthatjuk, mint például a preg_match(), preg_split() vagy a preg_replace().
<?php
function_name('/pattern/',subject);
?>
ITT,
- A „function_name(…)” függvény vagy preg_match(), preg_split(), vagy preg_replace() függvény lehet.
- A „/…/” perjelek a reguláris kifejezés elejét és végét jelölik.
- A „'/pattern/'” a minta, amelyre egyezni kell
- A „tárgy” az a szöveges karakterlánc, amelyhez illeszkedni kell
Most nézzünk meg 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 preg_match() függvényt használja egy egyszerű mintaillesztés végrehajtására a guru szóra egy adott URL.
Az alábbi kód a preg_match() függvény implementációját mutatja be 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"; } ?>
Tallózás a URL http://localhost/phptuts/preg_match_simple.php
Vizsgáljuk meg a kód azon részét, amely a kimenetért felelős, 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.
PHP Preg_split()
Most nézzünk egy másik példát, amely a preg_split() függvényt használja.
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 ); ?>
Tallózás a URL 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 CSS kóddal körülvett guru szóra cseréli, 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 mentette a preg_replace.php fájlt, keresse meg a következőt: URL http://localhost/phptuts/preg_replace.php
Reguláris kifejezés metakarakterei
A fenti példák nagyon alapvető mintákat használtak. A metakarakterek lehetővé teszik számunkra, hogy összetettebb mintaillesztéseket végezzünk, például egy e-mail cím érvényességének tesztelését. Most nézzük meg 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 |
| ^ | Egy karakterlánc elejére illeszkedik, vagy karaktereket kizár | A /^PH/ bármely PH-val kezdődő karakterláncra illeszkedik |
| $ | Megfelel a karakterlánc végén található mintának | /com$/ egyezik a guru99.com, yahoo.com stb. helyekkel. |
| * | Nulla vagy több előző karakterrel egyezik | /com*/ megfelel a számítógépnek, a kommunikációnak stb. |
| + | Az előző karakter(ek)nek legalább egyszer szerepelniük kell | /yah+oo/ egyezik a yahoo-val |
| \ | Metakarakterekből való kilépésre szolgál | A /yahoo+\.com/ a pontot literális értékként kezeli |
| [...] | Karakter osztály | /[abc]/ egyezik az a, b vagy c értékkel |
| 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.
Most nézzünk 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"; } ?>
Az e-mail-érvényesítési minta magyarázata
ITT,
- A „/…/” billentyűk kezdik és végzik a reguláris kifejezést.
- Az „^[a-zA-Z0-9._-]” kifejezés bármilyen kis- vagy nagybetűt, 0 és 9 közötti számot, valamint pontot, aláhúzásjelet vagy kötőjelet talál.
- A „+@[a-zA-Z0-9-]” karakterlánc a @ szimbólumot követő kis- vagy nagybetűkre, 0 és 9 közötti számokra vagy kötőjelekre illeszkedik.
- A „+\.[a-zA-Z.]{2,5}$/” karakterlánc a pontot a fordított perjellel helyettesíti, majd a karakterlánc végén található 2 és 5 közötti hosszúságú kis- vagy nagybetűkre illeszkedik.
Tallózás a URL http://localhost/phptuts/preg_match.php
Amint a fenti bontásból látható, a metakarakterek nagyon hatékonyak a minták egyeztetésében.




