2009-11-05 4 views
1

Je voudrais correspondre et extraire les variables de: {{variable:int}}problème preg_replace

  • variables serait quelque chose az
  • : est un séparateur
  • int serait un nombre entier 0 -9

Actuellement j'ai: preg_replace('!\{\{(\S+)\}\}!', "$1", $string) qui ne fait que la moitié du travail, je dois encore diviser par :.

Merci!

Répondre

1

Si vous souhaitez extraire le nom/valeur, je pense que vous voulez utiliser preg_match.

preg_match('!\{\{(.*?):(\d)\}\}!', $string, $matches); 
$varname = $matches[1]; 
$val = $matches[2]; 
+0

Convient à mes besoins les meilleurs. Merci à tous pour votre réponse! – Mission

1

utilisation

{{([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 une plus d'alphabets (petits ou majuscules)
suivi d'un ":"
suivi d'atleast un ou plusieurs chiffres (0-9)