PHP preg_match_all() Fonction
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);
}
?> 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 :
|
| 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);
}
?>