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

Beépített reguláris kifejezés függvények

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_split()

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

PHP Preg_replace()

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

[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/]

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