php

Uso della funzione preg_match() in PHP

Uso della funzione preg_match() in PHP

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 convalide dei moduli, come la convalida dell'e-mail, il controllo del formato del telefono, la convalida dei campi nome utente e password del modulo di accesso, ecc. Qualsiasi contenuto particolare del testo può essere cercato e sostituito utilizzando un modello di espressione regolare. Si chiama anche 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 abbinare un particolare modello nei dati stringa string. In questo tutorial è spiegato come la funzione preg_match() può essere utilizzata in PHP per eseguire varie attività.

Sintassi:

Int o false preg_match (string $motivo, stringa $oggetto [, array &$corrisponde = null [, int $flags = 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 basato sulla corrispondenza. Il quarto argomento, $ flag, è facoltativo, che contiene diversi tipi di valori di flag basati sulla 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 sensibile alle 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/', è usato per abbinare la stringa in modo sensibile alle maiuscole. Il secondo modello, '/piace/', è usato per abbinare la stringa in modo sensibile alle maiuscole. Il terzo modello, 'Mi piace/mi', è usato per abbinare la stringa in modo insensibile alle maiuscole. 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
$text = "Mi piace PHP. Mi piace anche JavaScript.";
//Definisci tre tipi di pattern
$motivo1 = '/Mi piace/';
$modello2 = '/mi piace/';
$motivo3 = '/Mi piace/io';
//Definisci la funzione per la ricerca del modello nel testo
funzione search_pattern($motivo, $stringa)

if(preg_match($schema, $stringa))
echo "Risultato della ricerca: È stata trovata una corrispondenza per il modello - $modello
";
altro
echo "Risultato della ricerca: Corrispondenza non trovata per il pattern - $pattern
";

//Stampa il testo originale
echo "Il testo originale è: $testo
";
//Chiama la funzione tre volte per tre pattern
search_pattern($motivo1, $testo);
search_pattern($motivo2, $testo);
search_pattern($motivo3, $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 pattern.

Esempio 2: convalidare l'URL

L'esempio seguente mostra come convalidare l'indirizzo URL utilizzando la funzione preg_match()match. Crea un file PHP con il seguente script.

Viene assegnato un valore URL nella variabile $url per il test. '@^(?:https://)?([^/]+)@i' la stringa 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
if(preg_match($motivo, $url, $corrispondenze1))

//Stampa il messaggio di successo
echo "L'URL è valido.
";
//Stampa l'array che contiene i valori di corrispondenza
echo "I valori dell'array sono: ";
print_r($match1);
// Recupera e stampa il valore dell'host
$host = $matches1[1];
eco "
Il nome dell'host è: $host";
//Cerca il nome di dominio dal valore dell'host
preg_match('/[^.]+\.[^.]+$/', $host, $match2);
eco "
Il nome del dominio è: $matches2[0]";

altro

//Stampa il messaggio di errore
echo "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(), viene utilizzato '/(bangla)(desh)/' come modello e valore 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 come valore flag, viene utilizzato PREG_UNMATCHED_AS_NULL. Se una qualsiasi parte del modello non corrisponde, verrà memorizzato un valore NULL nell'array. 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)/i';
$modello2 = '/(bangla)(contento)*(desh)/i';
$modello3 = '/contento/';
//Usando il flag PREG_OFFSET_CAPTURE
preg_match($pattern1, $testo, $match, PREG_OFFSET_CAPTURE);
eco "
";
print_r($corrispondenze);
eco "

";
//Usando il flag PREG_UNMATCHED_AS_NULL
preg_match($pattern2, $testo, $match, PREG_UNMATCHED_AS_NULL);
eco "
";
print_r($corrisponde);
eco "

";
//Usando il flag PREG_OFFSET_CAPTURE e il valore di offset
preg_match($schema3, $testo, $corrispondenze, PREG_OFFSET_CAPTURE, 3);
eco "
";
print_r($corrispondenze);
eco "
";
?>

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.

Come modificare il puntatore del mouse e le dimensioni, il colore e lo schema del cursore su Windows 10
Il puntatore del mouse e il cursore in Windows 10 sono aspetti molto importanti del sistema operativo. Questo si può dire anche per altri sistemi oper...
Motori di gioco gratuiti e open source per lo sviluppo di giochi Linux
Questo articolo tratterà un elenco di motori di gioco gratuiti e open source che possono essere utilizzati per lo sviluppo di giochi 2D e 3D su Linux....
Tutorial Shadow of the Tomb Raider per Linux
Shadow of the Tomb Raider è la dodicesima aggiunta alla serie Tomb Raider, un franchise di giochi d'azione e avventura creato da Eidos Montreal. Il gi...