problème preg_replace
-
16-09-2019 - |
Question
Je voudrais correspondre et extraire les variables de: {{variable:int}}
- variable serait quelque chose a-z
- : est un séparateur
- int serait un nombre entier 0-9
curretly j'ai: preg_replace('!\{\{(\S+)\}\}!', "$1", $string)
qui ne fait que la moitié du travail, je dois encore diviser par :
.
Merci!
La solution
Si vous voulez extraire le nom / valeur, je pense que vous voulez utiliser preg_match.
preg_match('!\{\{(.*?):(\d)\}\}!', $string, $matches);
$varname = $matches[1];
$val = $matches[2];
Autres conseils
Utilisez
{{([a-zA-Z]+):(\d+)}}
$ 1 contiendra la variable capturée, 2 $ contiendra le nombre entier capturé
Explication
{{([a-zA-Z])+:(\d+)}}
[a-zA-Z] + signifie atleast un plus alphabets (petits ou bouchons)
suivi d'un « : »
suivie par atleast un ou plusieurs chiffres (0-9)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow