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

Sisäänrakennettu säännöllinen lausekefunktiot

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

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

PHP Preg_replace()

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

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

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