Pregunta

Me gustaría coincidir y extraer las variables de: {{variable:int}}

  • Variable podría ser cualquier cosa a-z
  • es un separador
  • int sería un número entero 0-9

curretly tengo: preg_replace('!\{\{(\S+)\}\}!', "$1", $string) lo que lo hace sólo la mitad del trabajo, todavía tengo que dividir por :.

Gracias!

¿Fue útil?

Solución

Si desea extraer el nombre / valor, creo que desea utilizar preg_match.

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

Otros consejos

Es necesario un partido no expansivo (.*?): preg_replace('!\{\{(.*?):(\d)\}\}!')

Uso

{{([a-zA-Z]+):(\d+)}}

$ 1 será contener la variable capturado, $ 2 contendrá el número entero capturado

Explicación

{{([a-zA-Z])+:(\d+)}}

[a-zA-Z] + significa Atleast uno alfabetos más (pequeñas o tapas)
seguido de un ":"
seguido por el atleast uno o más dígitos (0-9)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top