preg_replace sorun

3 Cevap php

{{variable:int}}: Ben gelen değişkenleri maç ve çıkarmak istiyorum

  • variable a-z şey olurdu
  • : bir ayırıcı
  • int tamsayı 0-9 olurdu

Curretly i have: preg_replace('!\{\{(\S+)\}\}!', "$1", $string) which does only half the job, i still have to split by :.

Teşekkür ederiz!

3 Cevap

Eğer isim / değer elde etmek istiyorsanız, ben size preg_match kullanmak istiyorum düşünüyorum.

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

preg_replace('!\{\{(.*?):(\d)\}\}!'): Sen (.*?), bir non-greedy maçı gerekir

Kullanım

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

1 $ yakalanan değişken içerecek $ 2, yakalanan tamsayı içerecektir

Explanation

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

[a-zA-Z]+ means atleast one more alphabets (small or caps)
followed by a ":"
followed by atleast one or more digits (0-9)