Je veux que l'on puisse regarder dans une chaîne et trouver toutes les occurrences d'un motif. Cela est facile à faire avec preg_match si vous connaissez le nombre d'occurrences du modèle, mais je n'arrive pas à trouver un moyen de le faire fonctionner lorsque le nombre d'occurrences n'est pas connu.capture d'un motif répétitif sans contrainte
Voici un exemple d'une requête de travail pour un savoir ensemble d'occurrences:
$pattern = '/\[VAR:(.*)\].*\[VAR:(.*)\].*\[VAR:(.*)\].*\[VAR:(.*)\]/';
$string = "[VAR:one] once apon a time [VAR:two]. And then there was the time that [VAR:three] went to [VAR:four]";
preg_match ($pattern , $string, $matches);
print_r ($matches);
Cela renvoie les résultats que vous attendez:
[0] => [VAR:one] once apon a time [VAR:two]. And then there was the time that [VAR:three] went to [VAR:four]
[1] => one
[2] => two
[3] => three
[4] => four
J'ai essayé, sans succès, les variations de preg_match et preg_match_all avec le modèle (utilisant et n'utilisant pas le paramètre PREG_OFFSET_CAPTURE):
$pattern = '/\[VAR:(.*)\]/';
Toute aide serait grandement appréciée.
merci beaucoup. J'ai oublié le bit gourmand. – ken