PHP preg_match(): regulaaravaldised (regex)

โšก Nutikas kokkuvรตte

PHP regulaaravaldised on mustrite sobitamise tรถรถriistad, mis valideerivad, jagavad ja asendavad teksti รผhes avaldises. See juhend hรตlmab pรตhifunktsioone preg_match, preg_split ja preg_replace, selgitab levinumaid metamรคrke ja loob samm-sammult toimiva e-posti valideerimismustri.

  • ๐Ÿงฉ Mis on regulaaravaldis: Regulaaravaldis on muster, mis kirjeldab teksti, vรตimaldades รผhel funktsioonil stringe valideerida, otsida vรตi teisendada.
  • โœ… rase_matลก: preg_match kontrollib, kas muster esineb stringis ja tagastab esimese vaste korral vรครคrtuse โ€žtrueโ€œ, mis sobib ideaalselt valideerimiseks.
  • โœ‚๏ธ preg_split: preg_split jagab stringi massiiviks kรตikjal, kus muster esineb, nรคiteks lause jagamisel tรผhikute jรคrgi.
  • ๐Ÿ” preg_asendus: preg_replace leiab kรตik mustri vasted ja asendab need uue tekstiga, mis on kasulik mallide ja esiletรตstmise jaoks.
  • ๐Ÿ”ค Metategelased: Sรผmbolid nagu ., ^, $, * ja + loovad keerukaid mustreid, nรคiteks ankurdades vaste algusesse vรตi lรตppu.
  • ๐Ÿ“ง E-posti muster: Mรคrgiklassid ja kvantifikaatorid moodustavad รผhtse mustri, mis kontrollib, kas e-posti aadress on korrektselt vormistatud.
  • ๐Ÿค– Tehisintellekti abi: Tehisintellekti tรถรถriistad saavad lihtsast kirjeldusest kirjutada regulaaravaldise ning selgitada vรตi siluda keerulist olemasolevat mustrit.

PHP regulaaravaldised

Mis on regulaaravaldis PHP-s?

PHP regulaaravaldised, tuntud ka kui regulaaravaldised, on vรตimas mustrite sobitamise tรถรถriist, mida saab teostada รผhes avaldises. Regulaaravaldised kasutavad keerukate avaldiste loomiseks erimรคrke, nรคiteks +, - ja ^. Need aitavad teil tรคita selliseid รผlesandeid nagu e-posti aadresside, IP-aadresside ja muu valideerimine.

Miks kasutada regulaaravaldisi

  • PHP regulaaravaldised lihtsustavad mustrite tuvastamist stringandmetes, kutsudes vรคlja รผhe funktsiooni. See sรครคstab meie kodeerimisaega.
  • Kasutaja sisestatud andmete (nt e-posti aadresside, domeeninimede, telefoninumbrite ja IP-aadresside) valideerimisel
  • 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 regulaaravaldistega, mida me selles รตpetuses รตpime. Vaatame PHP-s kรตige sagedamini kasutatavaid regulaaravaldiste funktsioone.

  • preg_match() PHP-s โ€“ seda funktsiooni kasutatakse stringi mustri sobitamiseks. See tagastab vรครคrtuse โ€žtrueโ€, kui vaste leitakse, ja vรครคrtuse โ€žfalseโ€, kui vastet ei leita.
  • preg_split() PHP-s โ€“ seda funktsiooni kasutatakse stringi mustri sobitamiseks ja seejรคrel tulemuste jagamiseks numbriliseks massiiviks.
  • preg_replace() PHP-s โ€“ seda funktsiooni kasutatakse stringi mustri vastendamiseks ja seejรคrel vaste asendamiseks mรครคratud tekstiga.

Allpool on toodud regulaaravaldise funktsiooni, nรคiteks preg_match(), preg_split() vรตi preg_replace() sรผntaks.

<?php
function_name('/pattern/',subject);
?>

SIIN,

  • โ€žfunction_name(โ€ฆ)โ€ on kas preg_match(), preg_split() vรตi preg_replace().
  • Kaldkriipsud โ€ž/โ€ฆ/โ€œ tรคhistavad meie regulaaravaldise algust ja lรตppu
  • โ€ž'/pattern/'โ€ on muster, millele peame vaste leidma
  • โ€žTeemaโ€ on tekstistring, millega vastendatakse

Vaatame nรผรผd praktilisi nรคiteid, mis rakendavad รผlaltoodud PHP regulaaravaldiste funktsioone.

Preg_match() PHP-s

Esimeses nรคites kasutatakse preg_match() funktsiooni, et sooritada antud sรตna guru lihtsa mustriotsingu. URL.

Allolev kood nรคitab preg_match() funktsiooni rakendamist รผlaltoodud nรคites.

<?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 jaotist URL http://localhost/phptuts/preg_match_simple.php

Sisseehitatud regulaaravaldise funktsioonid

Vaatleme koodi osa, mis vastutab meie vรคljundi eest, 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.

PHP Preg_split()

Vaatame nรผรผd teist nรคidet, mis kasutab preg_split() funktsiooni.

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 jaotist URL http://localhost/phptuts/preg_split.php

PHP Preg_split()

PHP Preg_replace()

Vaatame nรผรผd preg_replace() funktsiooni. 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 faili preg_replace.php salvestanud, sirvige faili URL 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 teha keerukamaid mustrivasteid, nรคiteks testida e-posti aadressi kehtivust. Vaatame nรผรผd levinumaid 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 stringi algusele vรตi jรคtab tรคhemรคrgid vรคlja /^PH/ vastab mis tahes stringile, mis algab tรคhega PH
$ Vastab mustrile stringi lรตpus /com$/ vastab otsingumootoritele guru99.com, yahoo.com jne.
* Vastab nullile vรตi enamale eelnevale tรคhemรคrgile /com*/ sobib arvuti, side jne.
+ Eelnev(ad) tรคhemรคrk(id) peavad esinema vรคhemalt รผks kord /yah+oo/ vastab yahoole
\ Kasutatakse metategelaste eest pรตgenemiseks /yahoo+\.com/ kรคsitleb punkti sรตnasรตnalise vรครคrtusena
[...] Karakteriklass /[abc]/ vastab a-le, b-le vรตi c-le
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 e-posti aadressi 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";
}
?>

E-posti valideerimismustri selgitamine

SIIN,

  • โ€ž/โ€ฆ/โ€œ alustab ja lรตpetab regulaaravaldise
  • โ€ž^[a-zA-Z0-9._-]โ€ leiab vasted kรตikidele vรคike- vรตi suurtรคhtedele, numbritele vahemikus 0 kuni 9 ning punktidele, alakriipsudele vรตi kriipsudele.
  • โ€ž+@[a-zA-Z0-9-]โ€ vastab @-sรผmbolile, millele jรคrgnevad suur- vรตi vรคiketรคhed, numbrid vahemikus 0 kuni 9 vรตi kriipsud.
  • โ€ž+\.[a-zA-Z.]{2,5}$/โ€ asendab punkti kaldkriipsuga ja seejรคrel leiab stringi lรตpust kรตik vรคike- vรตi suurtรคhed pikkusega 2 kuni 5.

Sirvige jaotist URL http://localhost/phptuts/preg_match.php

PHP e-posti valideerimismuster

Nagu รผlaltoodud jaotusest nรคha, on metategelased mustrite sobitamisel vรคga vรตimsad.

KKK

preg_match peatub esimese vaste juures ja tรคidab $matchs selle รผhe tulemusega. preg_match_all leiab kรตik vasted stringist ja tagastab need kรตik pesastatud massiivis, mis sobib nttrackorduvate รผksuste tegemine.

Modifikaatorid jรคrgivad sulgevat eraldajat ja muudavad vastete leidmise kรคitumist. Modifikaator i muudab mustri suur- ja vรคiketรคhtede suhtes tundetuks, m kรคsitleb iga rida ^ ja $ puhul eraldi ning s laseb punktil leida uusi ridu, nagu /guru/i puhul.

Murra mustri osad sulgudesse, et luua pรผรผdmisrรผhmi. Pรคrast preg_match'i on tรคielik vaste $matches[0]-s ja iga rรผhm jรคrgneb $matches[1]-s, $matches[2]-s jne.

Jah. Kirjelda teksti, mida soovid vastendada, nรคiteks telefoninumbri vรตi kuupรคeva vormingut, ja tehisintellekt suudab luua mustri ja preg_match nรคite. Enne sellele tuginemist testi seda reaalsete ja รครคrmuslike sisendite suhtes.

Jah. Kleebi muster ja tehisintellekt saab selle mรคrgi haaval osadeks jagada, selgitada, millele iga osa vastab, ja vรคlja tuua, miks see teatud sisendi korral ebaรตnnestub, ning seejรคrel pakkuda vรคlja parandatud versiooni.

Vรตta see postitus kokku jรคrgmiselt: