PHP preg_match(): Säännölliset lausekkeet (Regex)
⚡ Älykäs yhteenveto
PHP:n säännölliset lausekkeet ovat hahmontunnistustyökaluja, jotka validoivat, jakavat ja korvaavat tekstiä yhdessä lausekkeessa. Tämä ohje kattaa ydintoiminnot preg_match, preg_split ja preg_replace, selittää yleiset metamerkit ja rakentaa toimivan sähköpostin validointimallin vaihe vaiheelta.

Mikä on säännöllinen lauseke PHP:ssä?
PHP-säännölliset lausekkeet, jotka tunnetaan myös nimellä regex, ovat tehokas kuvioiden yhteensovitustyökalu, joka voidaan suorittaa yhdessä lausekkeessa. Säännölliset lausekkeet käyttävät erikoismerkkejä, kuten +, - ja ^, monimutkaisten lausekkeiden luomiseen. Ne voivat auttaa sinua suorittamaan tehtäviä, kuten sähköpostiosoitteiden, IP-osoitteiden ja muiden validointia.
Miksi käyttää säännöllisiä lausekkeita
- PHP:n säännölliset lausekkeet yksinkertaistavat merkkijonodatan kuvioiden tunnistamista kutsumalla yhtä funktiota. Tämä säästää koodausaikaa.
- Käyttäjän syötteiden, kuten sähköpostiosoitteiden, verkkotunnusten, puhelinnumeroiden ja IP-osoitteiden, validoinnissa
- Avainsanojen korostaminen hakutuloksissa
- Kun luot mukautetun HTML-mallin. PHP:n Regexiä voidaan käyttää mallitunnisteiden tunnistamiseen ja niiden korvaamiseen todellisilla tiedoilla.
Sisäänrakennettu säännöllinen lausekefunktiot PHP:ssä
PHP:ssä on sisäänrakennettuja funktioita, joiden avulla voimme työskennellä säännöllisten lausekkeiden kanssa, mitä opimme tässä opetusohjelmassa. Tarkastellaanpa PHP:n yleisesti käytettyjä säännöllisten lausekkeiden funktioita.
- preg_match() PHP:ssä – tätä funktiota käytetään merkkijonon kuvioiden yhteensovittamiseen. Se palauttaa arvon true, jos osuma löytyy, ja false, jos osumaa ei löydy.
- preg_split() PHP:ssä – tätä funktiota käytetään merkkijonon kuvioiden yhteensovittamiseen ja tulosten jakamiseen numeeriseen taulukkoon.
- preg_replace() PHP:ssä – tätä toimintoa käytetään suorittamaan merkkijonon kaavavastaavuus ja korvaamaan vastaavuus määritetyllä tekstillä.
Alla on säännöllisen lausekkeen funktion, kuten preg_match(), preg_split() tai preg_replace(), syntaksi.
<?php
function_name('/pattern/',subject);
?>
TÄSSÄ,
- ”function_name(…)” on joko preg_match(), preg_split() tai preg_replace().
- ”/…/” -vinoviivat merkitsevät säännöllisen lausekkeen alkua ja loppua
- ”'/pattern/'” on kuvio, jota meidän on löydettävä
- "aihe" on tekstimerkkijono, johon verrataan
Katsotaanpa nyt käytännön esimerkkejä, jotka toteuttavat yllä olevat PHP:n regex-funktiot.
Preg_match() PHP:ssä
Ensimmäisessä esimerkissä käytetään preg_match()-funktiota yksinkertaisen kuvioiden yhteensovittamisen suorittamiseen sanalle guru tietyssä URL.
Alla oleva koodi näyttää preg_match()-funktion toteutuksen yllä olevassa esimerkissä.
<?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"; } ?>
Selaa URL http://localhost/phptuts/preg_match_simple.php
Tarkastellaanpa koodin sitä osaa, joka vastaa tulosteestamme, preg_match('/guru/', $oma_url)TÄÄLLÄ
- "preg_match(…)" on PHP:n regex-funktio
- "'/guru/'" on täsmäytettävä säännöllinen lausekemalli
- "$my_url" on muuttuja, joka sisältää tekstin, johon verrataan.
PHP Preg_split()
Katsotaanpa nyt toista esimerkkiä, joka käyttää preg_split()-funktiota.
Otamme merkkijonolauseen ja räjäyttämme sen taulukkoon; sovitettava kuvio on yksi välilyönti.
Tässä esimerkissä käytettävä tekstimerkkijono on "I Love Regular Expressions".
Alla oleva koodi havainnollistaa yllä olevan esimerkin toteutusta.
<?php $my_text = "I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Selaa URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Katsotaanpa nyt preg_replace()-funktiota PHP-toiminto joka suorittaa kuvion sovituksen ja korvaa sitten kuvion jollain muulla.
Alla oleva koodi etsii sanaa guru kielellä a jono.
Se korvaa sanan guru sanalla guru, jota ympäröi CSS-koodi, joka korostaa taustaväriä.
<?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; ?>
Olettaen, että olet tallentanut tiedoston preg_replace.php, selaa kohtaan URL http://localhost/phptuts/preg_replace.php
Säännöllisten lausekkeiden metamerkit
Yllä olevissa esimerkeissä käytettiin hyvin yksinkertaisia malleja. Metamerkkien avulla voimme suorittaa monimutkaisempia hahmojen yhteensovituksia, kuten testata sähköpostiosoitteen oikeellisuutta. Tarkastellaan nyt yleisesti käytettyjä metamerkkejä.
| metamerkki | Tuotetiedot | esimerkki |
|---|---|---|
| . | Vastaa mitä tahansa yksittäistä merkkiä uutta riviä lukuun ottamatta | /./ vastaa mitä tahansa, jossa on yksi merkki |
| ^ | Vastaa merkkijonon alkua tai jättää pois merkkejä | /^PH/ vastaa mitä tahansa merkkijonoa, joka alkaa PH:lla |
| $ | Vastaa merkkijonon lopussa olevaa kuviota | /com$/ vastaa osumia guru99.com, yahoo.com jne. |
| * | Vastaa nollaa tai useampaa edeltävistä merkeistä | /com*/ vastaa tietokonetta, viestintää jne. |
| + | Edellyttää, että edeltävä(t) merkki(t) esiintyvät vähintään kerran | /yah+oo/ vastaa yahooa |
| \ | Käytetään metahahmojen pakoon | /yahoo+\.com/ käsittelee pistettä kirjaimellisena arvona |
| [...] | Hahmoluokka | /[abc]/ vastaa a:ta, b:tä tai c:tä |
| AZ | Vastaa pieniä kirjaimia | /az/ vastaa cool, happy jne. |
| AZ | Vastaa isoja kirjaimia | /AZ/ vastaa MITÄ, MITEN, MIKSI jne. |
| 0-9 | Vastaa mitä tahansa lukua väliltä 0 ja 9 | /0-4/ vastaa 0,1,2,3,4 |
Yllä oleva luettelo sisältää vain yleisimmin käytetyt metamerkit säännöllisissä lausekkeissa.
Tarkastellaan nyt melko monimutkaista esimerkkiä, joka tarkistaa sähköpostiosoitteen oikeellisuuden.
<?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"; } ?>
Sähköpostin vahvistusmallin selittäminen
TÄSSÄ,
- ”/…/” aloittaa ja lopettaa säännöllisen lausekkeen
- ”^[a-zA-Z0-9._-]” löytää tulokseksi kaikki pienet tai isot kirjaimet, numerot 0:n ja 9:n välillä sekä pisteet, alaviivat ja viivat.
- ”+@[a-zA-Z0-9-]” vastaa @-merkkiä, jota seuraavat pienet tai isot kirjaimet, numerot väliltä 0 ja 9 tai yhdysviivat.
- ”+\.[a-zA-Z.]{2,5}$/” poistaa pisteen kenoviivalla ja löytää sitten merkkijonon lopussa olevat pienet tai isot kirjaimet, joiden merkkijonon pituus on 2–5.
Selaa URL http://localhost/phptuts/preg_match.php
Kuten yllä olevasta erittelystä näet, metahahmot ovat erittäin tehokkaita kuvioiden yhteensovittamisessa.




