problema preg_replace
-
16-09-2019 - |
Pergunta
Eu gostaria de combinar e extrair variáveis ??de: {{variable:int}}
- variável seria nada a-z
- : é um separador
- int seria um inteiro 0-9
curretly eu tenho: preg_replace('!\{\{(\S+)\}\}!', "$1", $string)
que só faz metade do trabalho, eu ainda tenho que dividir por :
.
Obrigado!
Solução
Se você quer extrair o nome / valor, eu acho que você quer usar preg_match.
preg_match('!\{\{(.*?):(\d)\}\}!', $string, $matches);
$varname = $matches[1];
$val = $matches[2];
Outras dicas
Você precisa de um jogo não ganancioso (.*?
): preg_replace('!\{\{(.*?):(\d)\}\}!')
Use
{{([a-zA-Z]+):(\d+)}}
$ 1 irá conter a variável capturado, US $ 2 conterá o inteiro capturado
Explicação
{{([a-zA-Z])+:(\d+)}}
[a-zA-Z] + meios atleast mais um alfabetos (pequenos ou bonés)
seguido por um ":"
seguido por pelo menos um ou mais dígitos (0-9)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow