$matches = array();
$str = '{theme}pink{/theme}';
preg_match('/{([^}]+)}([^{]+){\/([^}]+)}/', $str, $matches);
var_dump($matches);
Bu sizin için arıyor olabilir hepsi "etiketleri" tüm maçları dökümü. Deneyin ve $matches
bakmak ve ne demek istediğimi görürsünüz. Ben bu kod parçacığını sizin için yararlı olabilir, böylece kendi ilkel şablon dili inşa etmeye çalışıyoruz varsayarak yaşıyorum. Eğer, ben Smarty gibi bir şey bakıyor önerebilir.
Her durumda, normal ifadelerde değerleri yakalamak için parantez gerekir. Üç yakalanan Yukarıdaki değerler vardır:
([^}]+)
theme
olan açılış "etiketi," değerini yakalayacaktır. [^}]+
herhangi bir karakterin "bir veya daha fazla gelir ANCAK varsayılan olmayan bu açgözlü yapar }
karakter.
([^{]+)
Etiketleri arasında değer yakalayacaktır. Bu durumda biz tüm karakterleri eşleştirmek istediğiniz ANCAK {
karakter.
([^}]+)
Kapanış etiketinin değerini yakalayacaktır.