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 caratteristica potente di qualsiasi linguaggio di programmazione. Viene utilizzato principalmente per eseguire diversi tipi di validazioni del modulo, come la convalida e -mail, il controllo del formato del telefono, la convalida dei campi di nome utente e password del modulo di accesso, ecc. Qualsiasi contenuto particolare del testo può essere cercato e sostituito usando un modello di espressione regolare. Si chiama anche regex o regexp. Diversi tipi di simboli vengono utilizzati per definire il modello di regex.

Molte funzioni integrate esistono in PHP per l'espressione regolare. La funzione preg_match () è una di queste. Questa funzione viene utilizzata per abbinare un particolare modello nei dati di stringa. In questo tutorial la funzione preg_match () può essere utilizzato in PHP per eseguire varie attività.

Sintassi:

Int o false preg_match (string $ pattern, string $ soggetto [, array & $ matchs = null [, int $ flags = 0 [, int $ offset = 0]]])

Questa funzione può richiedere cinque argomenti. Il primo argomento, $ pattern, è obbligatorio, che definisce il modello per la corrispondenza. Il secondo argomento, $ soggetto, è obbligatorio e contiene i dati di stringa in cui verrà applicato il modello. Il terzo argomento, $ corrispondenze, è facoltativo e restituisce un array in base alla partita. Il quarto argomento, $ bandiere, è facoltativo, che contiene diversi tipi di valori di flag in base alla corrispondenza. Il quinto argomento, $ offset, è facoltativo e può essere utilizzato per definire la posizione iniziale della ricerca.

Esempio 1: abbinare il modello in modo sensibile al caso e insensibile al caso

L'esempio seguente mostra l'uso della funzione preg_match () per abbinare la stringa in modo sensibile al caso e al caso. Crea un file PHP con il seguente script.

Qui, tre modelli vengono utilizzati per l'applicazione in tre funzioni preg_match (). Il primo modello, '/Come/', viene utilizzato per abbinare la stringa in modo sensibile al caso. Il secondo modello, '/Piace/', viene utilizzato per abbinare la stringa in modo sensibile al caso. Il terzo modello, 'Mi piace/io', viene utilizzato per abbinare la stringa in modo insensibile al caso. Search_Pattern () La funzione è definita nello script per utilizzare la funzione preg_match () per la corrispondenza e stampa il messaggio in base al valore restituito di questa funzione.

// Definisci il testo
$ text = "Mi piace php. Mi piace anche JavaScript.";
// Definisci tre tipi di pattern
$ pattern1 = '/like/';
$ pattern2 = '/like/';
$ pattern3 = '/like/i';
// Definisci la funzione per la ricerca del modello nel testo
funzione Search_Pattern ($ pattern, $ String)

if (preg_match ($ pattern, $ string))
Echo "Risultato di ricerca: La partita si trova per il pattern - $ pattern
";
altro
Echo "Risultato di ricerca: La corrispondenza non si trova per il pattern - $ pattern
";

// Stampa il testo originale
echo "Il testo originale è: $ testo
";
// chiama la funzione tre volte per tre schemi
Search_Pattern ($ pattern1, $ text);
Search_Pattern ($ pattern2, $ text);
Search_Pattern ($ pattern3, $ text);
?>

Produzione:

Verrà visualizzato il seguente output dopo l'esecuzione dello script dal server. La prima riga mostra il testo in cui sono stati cercati i motivi. La seconda riga mostra l'output del primo modello. La terza riga mostra l'output del secondo modello. La quarta riga mostra l'output del terzo modello.

Esempio 2: convalidare l'URL

L'esempio seguente mostra il modo di convalidare l'indirizzo URL usando la funzione preg_match (). Crea un file PHP con il seguente script.

Un valore URL è assegnato nel $ URL variabile per il test. '@^(?: https: //)?([^/]+)@i 'String viene utilizzata come modello nella funzione preg_match () per verificare se l'indirizzo URL è valido o no. Se è valido, il nome host e il nome di dominio verranno stampati, altrimenti il ​​messaggio di errore verrà stampato.

// Definisci l'URL
$ url = "https: // www.Linuxhint.com ";
// Definisci il modello per convalidare l'URL
$ pattern = '@^(?: https: //)?([^/]+)@i ';
// Controllare l'URL è valido o no
if (preg_match ($ pattern, $ url, $ matches1))

// 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 ($ matches1);
// Recupera e stampa il valore dell'host
$ host = $ matches1 [1];
eco "
Il nome host è: $ host ";
// Cerca il nome di dominio dal valore host
preg_match ('/[^.]+\.[^.]+$/', $ host, $ matches2);
eco "
Il nome di dominio è: $ matches2 [0] ";

altro

// Stampa il messaggio di errore
Echo "URL non valido.";

?>

Produzione:

Verrà visualizzato il seguente output dopo l'esecuzione dello script dal server. L'URL fornito nello script è valido. Quindi, l'output mostra i valori delle corrispondenze $, 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 del flag e i valori di offset nella funzione preg_match (). Crea un file PHP con il seguente script.

Nello script sono usati tre motivi per tre tipi di corrispondenza. Nella prima funzione preg_match (), '/(bangla) (Desh)/' viene utilizzato come modello e valore flag, viene utilizzato preg_offset_capture. I valori del $ corrispondenze La variabile verrà stampata in base all'output della prima funzione preg_match (). Nella seconda funzione preg_match (), '/(bangla) (glad)*(desh)/i', viene usato come modello e il valore del flag, viene utilizzato preg_unmatched_as_null. Se una parte del modello non corrisponde, un valore nullo verrà memorizzato nell'array. I valori del $ corrispondenze La variabile verrà stampata in base all'uscita della seconda funzione preg_match (). Nella terza funzione preg_match (), '/glad/' viene utilizzato come modello, valore flag, preg_offset_capture e viene utilizzato 3 come valore di offset. I valori del $ corrispondenze La variabile verrà stampata in base all'output della terza funzione preg_match ().

// Definisci il valore del testo
$ text = "Bangladesh";
// Definisci tre tipi di motivi
$ pattern1 = '/(bangla) (desh)/i';
$ pattern2 = '/(bangla) (felice)*(desh)/i';
$ pattern3 = '/glad/';
// Utilizzo del flag preg_offset_capture
preg_match ($ pattern1, $ text, $ matches, preg_offset_capture);
eco "
";
print_r ($ corrispondenze);
eco "

";
// usando il flag preg_unmatched_as_null
preg_match ($ pattern2, $ text, $ matches, preg_unmatched_as_null);
eco "
";
print_r ($ corrispondenze);
eco "

";
// usando preg_offset_capture flag e valore offset
preg_match ($ pattern3, $ text, $ matches, preg_offset_capture, 3);
eco "
";
print_r ($ corrispondenze);
eco "
";
?>

Produzione:

Verrà visualizzato il seguente output dopo l'esecuzione dello 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.