La funzione preg_match() è una funzione incorporata di PHP che esegue una corrispondenza di espressioni regolari. Questa funzione cerca il modello nella stringa e restituisce vero se il modello esiste, altrimenti restituisce falso.
Generalmente, la ricerca inizia dall'inizio del parametro stringa $subject. Il parametro opzionale $offset viene utilizzato per avviare la ricerca dalla posizione specificata.
Sintassi
int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset)
Nota: $offset è un parametro opzionale che specifica la posizione da cui iniziare la ricerca.
Parametri
Questa funzione accetta cinque parametri, descritti di seguito:
modello
È un parametro di tipo stringa. Questo parametro contiene il modello da cercare come stringa.
soggetto
Questo parametro contiene la stringa di input in cui cerchiamo pattern.
partite
Se viene fornito il parametromatch, conterrà i risultati della ricerca.
corrispondenze[0] - Conterrà il testo corrispondente al modello completo.
partite[1] - Conterrà il testo che corrisponde al primo sottomodello tra parentesi catturato e così via.
bandiere
albero binario trasversale per corrispondenza
I flag possono avere i seguenti flag indicati di seguito:
compensare
Per impostazione predefinita, la ricerca inizia dall'inizio del parametro $subject. Il parametro offset viene utilizzato per specificare il luogo in cui inizierà la ricerca. È un parametro facoltativo.
Tipo di reso
La funzione preg_match() restituisce true se il pattern corrisponde, altrimenti restituisce false.
Nota: se vuoi solo verificare se una stringa è contenuta in un'altra stringa, non utilizzare la funzione preg_match(). Usa la funzione strpos() perché sarà più veloce.
Esempi
<?php //initialize a variable of string type $site = 'javatpoint'; preg_match('/(java)(t)(point)/', $site, $matches, PREG_OFFSET_CAPTURE); //display the matches result print_r($matches); ?>
Produzione:
Array ( [0] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
Possiamo vedere l'output di cui sopra come indicato di seguito per capirlo meglio.
operatori javascript
Array ( [0] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
Esempi: ricerca senza distinzione tra maiuscole e minuscole
<?php //initialize a variable of string type $website = 'JTP is a best online platform to learn.'; //case insensitive search for word jtp //The 'i' after pattern delimiter indicates case-insensitive search $res = preg_match('/jtp/i', $website, $matches); if ($res) { echo 'Pattern matched in string.</br>'; print_r($matches); } else { echo 'Pattern not matched in string.'; } ?>
Produzione:
Pattern matched in string. Array ( [0] => JTP )
Esempi: utilizzando il confine di parola ()
<?php /* The indicates the word boundary in the pattern. So, it matches only the distinct word like 'web', and words like 'coreweb' or ' webinar' do not match partially.*/ if (preg_match('/web/i', 'PHP is a web scripting language.')) { echo 'A match was found. </br>'; } else { echo 'A match was not found. <br>'; } if (preg_match('/web/i', 'PHP is a website scripting language.')) { echo 'A match was found.'; } else { echo 'A match was not found.'; } ?>
Produzione:
A match was found. A match was not found.
Esempi: estrarre il nome di dominio dall'URL
Produzione:
Domain name is: javatpoint.com
Sintassi Regex (espressione regolare).
[abc] | Corrisponde a un singolo carattere: a, b o c |
[^abc] | Corrisponde a qualsiasi singolo carattere tranne a, b o c |
[a-z] | Corrisponde a qualsiasi singolo carattere nell'intervallo a-z |
[a-zA-Z] | Qualsiasi singolo carattere compreso nell'intervallo a-z o A-Z |
^ | Inizio riga |
$ | Fine della riga |
UN | Inizio della stringa |
Con | Fine della corda |
. | Qualsiasi singolo carattere |
S | Qualsiasi carattere di spazio bianco |
S | Qualsiasi carattere diverso da uno spazio vuoto |
D | Qualsiasi cifra |
D | Qualsiasi non-cifra |
In | Qualsiasi carattere di una parola (lettera, numero, carattere di sottolineatura) |
IN | Qualsiasi carattere non verbale |
B | Controllo dei confini delle parole |
/?/ | Inizia e termina l'espressione regolare |
(?) | Cattura tutto ciò che è racchiuso tra parentesi () |
(a|b) | a o b |
UN? | Zero o uno di a |
UN* | Zero o più di a |
a+ | Uno o più a |
un{3} | Esattamente 3 di a |
un{3,} | 3 o più di a |
un{3,6} | Tra il 3 e il 6 dell'a |
io | Controllo senza distinzione tra maiuscole e minuscole |
M | Fai corrispondere il punto alle nuove righe |
X | Ignora gli spazi bianchi nelle espressioni regolari |