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.