L'espressione regolare è un modello particolare che può essere utilizzato per abbinare, cercare e sostituire qualsiasi stringa particolare nei dati di testo. È una potente funzionalità di qualsiasi linguaggio di programmazione. Viene principalmente utilizzato per eseguire diversi tipi di convalida dei moduli, come convalidare l'e-mail, controllare il formato del telefono, convalidare i campi nome utente e password del modulo di accesso, ecc. Qualsiasi contenuto particolare del testo può essere cercato e sostituito utilizzando un'espressione regolare modello. È anche chiamato regex o RegExp. Diversi tipi di simboli vengono utilizzati per definire il modello regex.
Esistono molte funzioni integrate in PHP per l'espressione regolare. La funzione preg_match() è una di queste. Questa funzione viene utilizzata per la corrispondenza di un particolare modello nei dati di stringa. In questo tutorial viene spiegato come la funzione preg_match() può essere utilizzata in PHP per eseguire varie attività.
Sintassi:
Int ofalso preg_match (corda$modello,corda$soggetto [, Vettore &$match = nullo [,int$ flag = 0 [,int$offset = 0]]])Questa funzione può accettare cinque argomenti. Il primo argomento, $modello , è obbligatorio, che definisce il modello per la corrispondenza. Il secondo argomento, $soggetto , è obbligatorio e contiene i dati della stringa in cui verrà applicato il modello. Il terzo argomento, $match , è facoltativo e restituisce un array in base alla corrispondenza. Il quarto argomento, $ flag , è facoltativo e contiene diversi tipi di valori flag in base alla corrispondenza. Il quinto argomento, $offset , è facoltativo e può essere utilizzato per definire la posizione iniziale della ricerca.
Esempio 1: abbina il modello in modo sensibile alle maiuscole e alle maiuscole
L'esempio seguente mostra l'uso della funzione preg_match() per la corrispondenza della stringa in modo che faccia distinzione tra maiuscole e minuscole e senza distinzione tra maiuscole e minuscole. Crea un file PHP con il seguente script.
Qui, vengono utilizzati tre modelli per l'applicazione in tre funzioni preg_match(). Il primo modello, '/Piace/', viene utilizzato per la corrispondenza della stringa in modo sensibile alle maiuscole. Il secondo modello, '/Come/' , viene utilizzato per la corrispondenza della stringa con distinzione tra maiuscole e minuscole. Il terzo modello, 'Mi piace/io' , viene utilizzato per la corrispondenza della stringa senza distinzione tra maiuscole e minuscole. modello_ricerca() La funzione è definita nello script per utilizzare la funzione preg_match() per la corrispondenza e stampa il messaggio in base al valore restituito da questa funzione.
//Definisci il testo
$testo = 'Mi piace PHP. Mi piace anche JavaScript.';
//Definisci tre tipi di pattern
$modello1 = '/Piace/';
$modello2 = '/Come/';
$modello3 = '/Mi piace/mi';
//Definisci la funzione per la ricerca del modello nel testo
funzionesearch_pattern($modello, $stringa)
{
Se( preg_match ($modello, $stringa))
buttato fuori 'Risultato della ricerca: È stata trovata una corrispondenza per il modello -$modello
';
altro
buttato fuori 'Risultato della ricerca: Corrispondenza non trovata per il modello -$modello
';
}
//Stampa il testo originale
buttato fuori 'Il testo originale è: $testo
';
//Chiama la funzione tre volte per tre pattern
search_pattern($modello1, $testo);
search_pattern($modello2, $testo);
search_pattern($modello3, $testo);
?>
Produzione :
Il seguente output apparirà dopo aver eseguito lo script dal server. La prima riga mostra il testo in cui sono stati cercati i modelli. La seconda riga mostra l'output del primo modello. La terza riga mostra l'output del secondo pattern. La quarta riga mostra l'output del terzo modello.
Esempio 2: convalidare l'URL
L'esempio seguente mostra il modo per convalidare l'indirizzo URL utilizzando la funzione preg_match(). Crea un file PHP con il seguente script.
Viene assegnato un valore URL nella variabile $url per il test. La stringa '@^(?:https://)?([^/]+)@i' viene utilizzata come pattern nella funzione preg_match() per verificare se l'indirizzo URL è valido o meno. Se è valido, verranno stampati il nome host e il nome di dominio, altrimenti verrà stampato il messaggio di errore.
//Definisci l'URL
$url = 'https://www.linuxhint.com';
//Definisci il modello per la convalida dell'URL
$modello ='@^(?:https://)?([^/]+)@i';
//Controlla che l'URL sia valido o meno
Se( preg_match ($modello, $url, $match1))
{
//Stampa il messaggio di successo
buttato fuori 'L'URL è valido.
';
//Stampa l'array che contiene i valori di corrispondenza
buttato fuori 'I valori dell'array sono: ';
print_r ($match1);
// Recupera e stampa il valore dell'host
$host = $match1[1];
buttato fuori '
Il nome dell'host è:$host';
//Cerca il nome di dominio dal valore dell'host
preg_match ('/[^.-lex.europa.eu+.[^.íritu+$/', $host, $match2);
buttato fuori '
Il nome di dominio è:{$matches2[0]}';
}
altro
{
//Stampa il messaggio di errore
buttato fuori 'URL non valido.';
}
?>
Produzione :
Il seguente output apparirà dopo aver eseguito lo script dal server. L'URL fornito nello script è valido. Quindi, l'output mostra i valori di $matches, il nome host dell'URL e il nome di dominio dell'URL.
Esempio 3: modello di ricerca con flag e valori di offset
L'esempio seguente mostra gli usi dei valori flag e offset nella funzione preg_match(). Crea un file PHP con il seguente script.
Nello script vengono utilizzati tre modelli per tre tipi di corrispondenza. Nella prima funzione preg_match(), '/(bangla)(desh)/' viene utilizzato come modello e il valore del flag, viene utilizzato PREG_OFFSET_CAPTURE. I valori di $match la variabile verrà stampata in base all'output della prima funzione preg_match(). Nella seconda funzione preg_match(), '/(bangla)(glad)*(desh)/i', viene utilizzato come modello e il valore del flag viene utilizzato PREG_UNMATCHED_AS_NULL. Se una qualsiasi parte del modello non corrisponde, nell'array verrà memorizzato un valore NULL. I valori di $match la variabile verrà stampata in base all'output della seconda funzione preg_match(). Nella terza funzione preg_match(), '/glad/' viene utilizzato come modello, il valore del flag, PREG_OFFSET_CAPTURE viene utilizzato e 3 viene utilizzato come valore di offset. I valori di $match la variabile verrà stampata in base all'output della terza funzione preg_match().
//Definisci il valore del testo
$testo = 'Bangladesh';
//Definisci tre tipi di pattern
$modello1 = '/ (bangla) (desh) / io';
$modello2 = '/ (bangla) (felice) * (desh) / io';
$modello3 = '/lieto/';
//Usando il flag PREG_OFFSET_CAPTURE
preg_match ($modello1, $testo, $match,PREG_OFFSET_CAPTURE);
buttato fuori '
';
print_r ($matches);
echo '
';
//Usando il flag PREG_UNMATCHED_AS_NULL
preg_match ($modello2, $testo, $match,PREG_UNMATCHED_AS_NULL);
buttato fuori '
';
print_r ($matches);
echo '
';
//Usando il flag PREG_OFFSET_CAPTURE e il valore di offset
preg_match ($modello3, $testo, $match,PREG_OFFSET_CAPTURE, 3);
buttato fuori '
';
print_r ($matches);
echo '';
?>
Produzione :
Il seguente output apparirà dopo aver eseguito lo script dal server.
Conclusione
Gli usi della funzione preg_match() sono stati spiegati in questo tutorial usando più esempi. Gli usi di diversi argomenti di questa funzione sono stati mostrati anche qui. I lettori saranno in grado di utilizzare correttamente questa funzione nel loro script dopo aver letto questo tutorial.