problema preg_replace
-
16-09-2019 - |
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!
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