PHP preg_match(): espressioni regolari (Regex)
โก Riepilogo intelligente
Le espressioni regolari in PHP sono strumenti di corrispondenza di pattern che consentono di convalidare, suddividere e sostituire il testo in un'unica espressione. Questa guida illustra le funzioni principali preg_match, preg_split e preg_replace, spiega i metacaratteri comuni e crea passo dopo passo un pattern funzionante per la convalida degli indirizzi email.

Che cosa sono le espressioni regolari in PHP?
espressioni regolari PHPLe espressioni regolari, note anche come regex, sono un potente strumento di corrispondenza di pattern che puรฒ essere utilizzato con una singola espressione. Le espressioni regolari utilizzano caratteri speciali come +, - e ^ per creare espressioni complesse. Possono essere utili per svolgere attivitร come la convalida di indirizzi email, indirizzi IP e altro ancora.
Perchรฉ usare le espressioni regolari
- Le espressioni regolari in PHP semplificano l'identificazione di pattern nei dati di tipo stringa, consentendo di richiamare una singola funzione. Questo ci fa risparmiare tempo nella programmazione.
- Durante la convalida dell'input dell'utente, come indirizzi e-mail, nomi di dominio, numeri di telefono e indirizzi IP
- Evidenziare le parole chiave nei risultati di ricerca
- Quando crei un modello HTML personalizzato. Regex in PHP puรฒ essere utilizzato per identificare i tag del modello e sostituirli con dati effettivi.
Funzioni di espressione regolare integrate in PHP
PHP dispone di funzioni integrate che ci permettono di lavorare con le espressioni regolari, che impareremo in questo tutorial. Analizziamo le funzioni di espressione regolare piรน comunemente utilizzate in PHP.
- preg_match() in PHP โ questa funzione viene utilizzata per eseguire la corrispondenza di pattern su una stringa. Restituisce true se viene trovata una corrispondenza e false in caso contrario.
- preg_split() in PHP โ questa funzione viene utilizzata per eseguire una corrispondenza di pattern su una stringa e quindi suddividere i risultati in un array numerico.
- preg_replace() in PHP โ questa funzione viene utilizzata per eseguire un pattern match su una stringa e quindi sostituire la corrispondenza con il testo specificato.
Di seguito รจ riportata la sintassi per una funzione di espressione regolare come preg_match(), preg_split() o preg_replace().
<?php
function_name('/pattern/',subject);
?>
QUI,
- โfunction_name(โฆ)โ puรฒ essere preg_match(), preg_split() o preg_replace().
- โ/โฆ/โ le barre oblique indicano lโinizio e la fine della nostra espressione regolare
- โ'/pattern/'โ รจ il modello che dobbiamo abbinare
- "oggetto" รจ la stringa di testo con cui confrontare
Vediamo ora alcuni esempi pratici che implementano le funzioni regex di PHP descritte in precedenza.
Preg_match() in PHP
Il primo esempio utilizza la funzione preg_match() per eseguire una semplice corrispondenza di pattern per la parola guru in un dato URL.
Il codice seguente mostra l'implementazione della funzione preg_match() per l'esempio precedente.
<?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"; } ?>
Passare al URL http://localhost/phptuts/preg_match_simple.php
Esaminiamo la parte del codice responsabile del nostro output, preg_match('/guru/', $my_url). QUI,
- โpreg_match(โฆ)โ รจ la funzione regex PHP
- โ'/guru/'โ รจ il modello di espressione regolare da abbinare
- "$my_url" รจ la variabile contenente il testo da confrontare.
PHP Preg_split()
Vediamo ora un altro esempio che utilizza la funzione preg_split().
Prenderemo una frase di stringa e la esploderemo in un array; il modello da abbinare รจ uno spazio singolo.
La stringa di testo da utilizzare in questo esempio รจ "I Love Regular Expressions".
Il codice seguente illustra l'implementazione dell'esempio precedente.
<?php $my_text = "I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Passare al URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Ora esaminiamo la funzione preg_replace() Funzione PHP che esegue una corrispondenza di pattern e quindi sostituisce il pattern con qualcos'altro.
Il codice seguente cerca la parola guru in a stringa.
Sostituisce la parola guru con la parola guru circondata da codice CSS che evidenzia il colore di sfondo.
<?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; ?>
Supponendo che tu abbia salvato il file preg_replace.php, vai al URL http://localhost/phptuts/preg_replace.php
Metacaratteri delle espressioni regolari
Gli esempi precedenti utilizzavano schemi molto semplici. I metacaratteri ci consentono di eseguire corrispondenze di pattern piรน complesse, come ad esempio verificare la validitร di un indirizzo email. Analizziamo ora i metacaratteri piรน comunemente utilizzati.
| Metacarattere | Descrizione | Esempio |
|---|---|---|
| . | Corrisponde a qualsiasi singolo carattere tranne una nuova riga | /./ corrisponde a tutto ciรฒ che ha un singolo carattere |
| ^ | Corrisponde all'inizio di una stringa o esclude i caratteri | /^PH/ corrisponde a qualsiasi stringa che inizia con PH |
| $ | Corrisponde a uno schema alla fine della stringa | /com$/ corrisponde a guru99.com, yahoo.com ecc. |
| * | Corrisponde a zero o piรน dei caratteri precedenti | /com*/ corrisponde a computer, comunicazione, ecc. |
| + | Richiede che il/i carattere/i precedente/i compaia/compariscano almeno una volta | /yah+oo/ corrisponde a yahoo |
| \ | Utilizzato per sfuggire ai metacaratteri | /yahoo+\.com/ tratta il punto come un valore letterale |
| [...] | Classe di caratteri | /[abc]/ corrisponde ad a, b o c |
| az | Corrisponde alle lettere minuscole | /az/ corrisponde a bello, felice, ecc. |
| AZ | Corrisponde alle lettere maiuscole | /AZ/ corrisponde a COSA, COME, PERCHร ecc. |
| 0-9 | Corrisponde a qualsiasi numero compreso tra 0 e 9 | /0-4/ corrisponde a 0,1,2,3,4 |
L'elenco precedente fornisce solo i metacaratteri piรน comunemente utilizzati nelle espressioni regolari.
Analizziamo ora un esempio piuttosto complesso che verifica la validitร di un indirizzo email.
<?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"; } ?>
Spiegazione del modello di convalida dell'indirizzo email
QUI,
- โ/โฆ/โ avvia e termina lโespressione regolare
- โ^[a-zA-Z0-9._-]โ corrisponde a qualsiasi lettera minuscola o maiuscola, numeri compresi tra 0 e 9, punti, trattini bassi o trattini.
- โ+@[a-zA-Z0-9-]โ corrisponde al simbolo @ seguito da lettere minuscole o maiuscole, numeri compresi tra 0 e 9 o trattini.
- โ+\.[a-zA-Z.]{2,5}$/โ esegue l'escape del punto usando la barra rovesciata, quindi corrisponde a qualsiasi lettera minuscola o maiuscola con una lunghezza di caratteri compresa tra 2 e 5 alla fine della stringa.
Passare al URL http://localhost/phptuts/preg_match.php
Come si puรฒ notare dall'analisi precedente, i metacaratteri sono molto potenti quando si tratta di individuare modelli.




