PHP preg_match_all() Fonction

❮ Référence RegExp PHP

Exemple

Trouvez toutes les occurrences de "ain" dans une chaîne :

<?php
$str = "La pluie en ESPAGNE tombe principalement sur les plaines.";
$pattern = "/ain/i";
if(preg_match_all($pattern, $str, $matches)) {
print_r($matches);
}
?>
Essayez-le vous-même »

Définition et Utilisation

La fonction preg_match_all() retourne le nombre de correspondances d'un motif trouvées dans une chaîne et remplit une variable avec les correspondances trouvées.


Syntaxe

preg_match_all( motif, entrée, correspondances, drapeaux, décalage )

Valeurs des Paramètres

Paramètre Description
motif Requis. Contient une expression régulière indiquant ce qu'il faut rechercher.
entrée Requis. La chaîne dans laquelle la recherche sera effectuée.
correspondances Optionnel. La variable utilisée dans ce paramètre sera remplie avec un tableau contenant toutes les correspondances trouvées.
drapeaux Optionnel. Un ensemble d'options qui modifient la structure du tableau de correspondances.

L'une des structures suivantes peut être sélectionnée :
  • PREG_PATTERN_ORDER - Par défaut. Chaque élément du tableau de correspondances est un tableau de correspondances du même groupe dans l'expression régulière, avec l'index 0 correspondant aux correspondances de l'expression entière et les indices restants pour les correspondances de sous-motif.
  • PREG_SET_ORDER - Chaque élément du tableau de correspondances contient les correspondances de tous les groupements pour l'une des correspondances trouvées dans la chaîne.
Un nombre quelconque des options suivantes peut être appliqué :
  • PREG_OFFSET_CAPTURE - Lorsque cette option est activée, chaque correspondance, au lieu d'être une chaîne, sera un tableau où le premier élément est une sous-chaîne contenant la correspondance et le deuxième élément est la position du premier caractère de la sous-chaîne dans l'entrée.
  • PREG_UNMATCHED_AS_NULL - Lorsque cette option est activée, les sous-motifs non correspondants seront retournés comme NULL au lieu d'une chaîne vide.
décalage Optionnel. Par défaut 0. Indique jusqu'où dans la chaîne commencer la recherche. La fonction preg_match() ne trouvera pas les correspondances qui se produisent avant la position donnée dans ce paramètre.

Détails Techniques

Valeur de Retour : Retourne le nombre de correspondances trouvées ou false si une erreur s'est produite.
Version PHP : 4+
Journal des Modifications : PHP 7.2 - Ajout du drapeau PREG_UNMATCHED_AS_NULL

PHP 5.4 - Le paramètre correspondances est devenu optionnel

PHP 5.3.6 - La fonction retourne false lorsque le décalage est plus long que la longueur de l'entrée

PHP 5.2.2 - Les sous-motifs nommés peuvent utiliser la syntaxe (?'nom') et (? <nom>) en plus de l'ancienne (?P<nom>)

Plus d'Exemples

Exemple

Utilisez PREG_PATTERN_ORDER pour définir la structure du tableau correspondances . Dans cet exemple, chaque élément du tableau correspondances contient toutes les correspondances pour l'un des groupements de l'expression régulière.

<?php
$str = "abc ABC";
$pattern = "/((a)b)(c)/i";
if(preg_match_all($pattern, $str, $matches, PREG_PATTERN_ORDER)) {
print_r($matches);
}
?>
Essayez-le vous-même »

❮ Référence RegExp PHP