PHP preg_match(): Säännölliset lausekkeet (Regex)
Mikä on säännöllinen lauseke PHP:ssä?
PHP säännöllinen lauseke tunnetaan myös nimellä regex, ovat tehokkaita kuvioiden täsmäytysalgoritmeja, jotka voidaan suorittaa yhdellä lausekkeella. Säännölliset lausekkeet käyttävät aritmeettisia operaattoreita, kuten (+,-,^), luodakseen monimutkaisia lausekkeita. Ne voivat auttaa sinua suorittamaan tehtäviä, kuten vahvistamaan sähköpostiosoitteet, IP-osoitteet jne.
Miksi käyttää säännöllisiä lausekkeita
- PHP Säännölliset lausekkeet yksinkertaistavat merkkijonotietojen kuvioiden tunnistamista kutsumalla yhtä funktiota. Tämä säästää koodausaikaa.
- Vahvistaessaan käyttäjän syötteitä, kuten sähköpostiosoitetta, verkkotunnuksia, puhelinnumeroita, IP-osoitteita,
- 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 toimintoja, joiden avulla voimme työskennellä tavallisten funktioiden kanssa, jotka opimme tässä PHP:n säännöllisten lausekkeiden opetusohjelmassa. Katsotaanpa yleisesti käytettyjä säännöllisten lausekkeiden toimintoja PHP:ssä.
- preg_match() PHP:ssä – tätä toimintoa käytetään PHP:n mallin sovittamiseen merkkijonolle. Palauttaa tosi, jos osuma löytyy ja false, jos vastaavuutta ei löydy.
- preg_split() PHP:ssä – tätä toimintoa käytetään suorittamaan merkkijonon kaavavastaavuus ja sitten jakamaan tulokset numeeriseen taulukkoon
- preg_replace() PHP:ssä – tätä toimintoa käytetään suorittamaan merkkijonon kaavavastaavuus ja korvaamaan vastaavuus määritetyllä tekstillä.
Alla on syntaksi säännölliselle lausekkeelle, kuten PHP preg_match(), PHP preg_split() tai PHP preg_replace().
<?php function_name('/pattern/',subject); ?>
TÄSSÄ,
- "funktion_nimi(…)" on joko PHP preg_match(), PHP preg_split() tai PHP preg_replace().
- "/…/" Kenoviivat osoittavat PHP:n regex-testaustoimintomme alkua ja loppua
- '/pattern/' on kuvio, joka meidän on sovitettava yhteen
- "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äinen esimerkki käyttää PHP-funktiota preg_match() suorittaakseen yksinkertaisen kaavahaun sanalle guru tietyssä URL-osoitteessa.
Alla oleva koodi näyttää preg_match()-testaustoiminnon 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-osoitteeseen http://localhost/phptuts/preg_match_simple.php
Tarkastellaan sitä koodin osaa, joka vastaa tuotostamme "preg_match('/guru/', $oma_url)" TÄSSÄ,
- "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.
Alla oleva kaavio tiivistää edellä mainitut kohdat
PHP Preg_split()
Katsotaan nyt toista esimerkkiä, joka käyttää PHP-funktion 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-osoitteeseen http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Katsotaan nyt preg_replace() in 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 taustaväriä korostava css-koodi.
<?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, selain URL-osoitteeseen http://localhost/phptuts/preg_replace.php
Säännöllisten lausekkeiden metamerkit
Yllä olevissa esimerkeissä käytettiin hyvin peruskuvioita; metamerkit antavat meille mahdollisuuden suorittaa monimutkaisempia kaavoja, kuten testata sähköpostiosoitteen oikeellisuutta. Katsotaanpa 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 alkua tai merkkijonoa / jättää pois merkkejä | /^PH/ vastaa mitä tahansa merkkijonoa, joka alkaa PH:lla |
$ | Vastaa kuviota langan päässä | /com$/ vastaa guru99.com,yahoo.com jne. |
* | Vastaa mitä tahansa nollaa (0) tai useampaa merkkiä | /com*/ vastaa tietokonetta, viestintää jne. |
+ | Edellyttävät merkit näkyvät vähintään kerran | /yah+oo/ vastaa yahooa |
\ | Käytetään metamerkkien välttämiseen | /yahoo+\.com/ käsittelee pistettä kirjaimellisena arvona |
[...] | Hahmoluokka | /[abc]/ vastaa abc |
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.
Katsotaanpa nyt melko monimutkaista esimerkkiä, joka tarkistaa sähköpostiosoitteen kelvollisuuden.
<?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"; } ?>
Kuvion selittäminen "[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/] ”
TÄSSÄ,
- "'/…/'" aloittaa ja päättää säännöllisen lausekkeen
- ”^[a-zA-Z0-9._-]” vastaa mitä tahansa pieniä tai isoja kirjaimia, numeroita 0–9 ja pisteitä, alaviivoja tai väliviivoja.
- "+@[a-zA-Z0-9-]" vastaa @-symbolia, jota seuraa pieniä tai isoja kirjaimia, numeroita 0-9 tai väliviivoja.
- "+\.[a-zA-Z.]{2,5}$/" poistaa pisteen kenoviivalla ja vastaa sitten merkkijonon lopussa olevia pieniä tai isoja kirjaimia, joiden merkin pituus on välillä 2–5.
Selaa URL-osoitteeseen http://localhost/phptuts/preg_match.php
Kuten yllä olevasta esimerkkierittelystä näet, metamerkit ovat erittäin tehokkaita kuvioiden yhteensovittamisessa.
Yhteenveto
- Säännöllinen lauseke tai säännöllinen lauseke PHP:ssä on kuvioiden täsmäysalgoritmi
- Säännölliset lausekkeet ovat erittäin hyödyllisiä suoritettaessa vahvistustarkastuksia, luotaessa HTML-mallijärjestelmiä, jotka tunnistavat tunnisteita jne.
- PHP on sisäänrakennettu funktiot, nimittäin PHP preg_match(), PHP preg_split() ja PHP preg_replace(), jotka tukevat säännöllisiä lausekkeita.
- Metahahmot antavat meille mahdollisuuden luoda monimutkaisia kuvioita