Uso della funzione preg_match() in PHP

Use Preg_match Function 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 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.