PHP String matching con espressioni regolari


Esempio

preg_match controlla se una stringa corrisponde all'espressione regolare.

$string = 'This is a string which contains numbers: 12345';

$isMatched = preg_match('%^[a-zA-Z]+: [0-9]+$%', $string);
var_dump($isMatched); // bool(true)

Se passi un terzo parametro, verrà popolato con i dati corrispondenti dell'espressione regolare:

preg_match('%^([a-zA-Z]+): ([0-9]+)$%', 'This is a string which contains numbers: 12345', $matches);
// $matches now contains results of the regular expression matches in an array.
echo json_encode($matches); // ["numbers: 12345", "numbers", "12345"]

$matches contiene una matrice dell'intera corrispondenza, quindi sottostringhe nell'espressione regolare delimitata da parentesi, nell'ordine di offset della parentesi aperta. Ciò significa che se si ha /z(a(b))/ come espressione regolare, l'indice 0 contiene l'intera sottostringa zab , l'indice 1 contiene la sottostringa delimitata dalle parentesi esterne ab e l'indice 2 contiene le parentesi interne b .