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 regex: Säännöllinen lauseke on tekstiä kuvaava malli, jonka avulla yksi funktio voi validoida, hakea tai muuntaa merkkijonoja.
  • preg_match: preg_match testaa, esiintyykö merkkijonossa kuvio, ja palauttaa arvon true ensimmäisen osuman yhteydessä, mikä on ihanteellinen validointia varten.
  • ✂️ raskausjako: preg_split jakaa merkkijonon taulukkoon missä tahansa kuvio esiintyy, kuten jakamalla lauseen välilyöntien kohdalla.
  • 🔁 preg_replace: preg_replace löytää kaikki kuvion osumat ja korvaa ne uudella tekstillä, mikä on hyödyllinen mallien luonnissa ja korostamisessa.
  • 🔤 Metahahmot: Symbolit, kuten ., ^, $, * ja +, muodostavat monimutkaisia ​​kuvioita, esimerkiksi ankkuroivat osuman alkuun tai loppuun.
  • 📧 Sähköpostiosoitemalli: Merkkiluokat ja kvanttorit yhdistyvät yhdeksi malliksi, joka tarkistaa, onko sähköpostiosoite oikein muodostettu.
  • 🤖 AI Assist: Tekoälytyökalut voivat kirjoittaa säännöllisen lausekkeen pelkästä kuvauksesta ja selittää tai debugata monimutkaisen olemassa olevan kuvion.

PHP-säännölliset lausekkeet

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

Sisäänrakennettu säännöllinen lausekefunktiot

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

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

PHP Preg_replace()

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

PHP-sähköpostin vahvistusmalli

Kuten yllä olevasta erittelystä näet, metahahmot ovat erittäin tehokkaita kuvioiden yhteensovittamisessa.

UKK

preg_match pysähtyy ensimmäiseen osumaan ja täyttää $matchs-taulukon tällä yhdellä tuloksella. preg_match_all löytää kaikki merkkijonon osumat ja palauttaa ne kaikki sisäkkäisessä taulukossa, joka sopii esim.tractoistuvien kohteiden käsittely.

Muokkaajat seuraavat sulkevaa erotinmerkkiä ja muuttavat täsmäytyskäyttäytymistä. i-muokkaaja tekee kuviosta kirjainkoon riippumattoman, m käsittelee jokaista riviä erikseen ^- ja $-merkkien kohdalla, ja s antaa pisteen täsmätä rivinvaihdot, kuten /guru/i-tiedostossa.

Luo osumaryhmiä rivittämällä osat kuviosta sulkeisiin. preg_match-muuttujasta täydellinen osuma on $matches[0]-luokassa ja kukin ryhmä seuraa $matches[1]-, $matches[2]- ja niin edelleen-luokissa.

Kyllä. Kuvaile täsmäävä teksti, kuten puhelinnumero tai päivämäärämuoto, ja tekoäly voi tuottaa kuvion sekä preg_match-esimerkin. Testaa sitä reaaliaikaisilla ja reunatapaussyötteillä ennen kuin luotat siihen.

Kyllä. Liitä kuvio, niin tekoäly voi purkaa sen merkki merkki kerrallaan, selittää, mihin kukin osa vastaa, ja osoittaa, miksi se epäonnistuu tietyllä syötteellä, ja ehdottaa sitten korjattua versiota.

Tiivistä tämä viesti seuraavasti: