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

Sisseehitatud regulaaravaldise funktsioonid

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

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

PHP Preg_replace()

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

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

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