Selamlar tüm,
Ben benim CMS şablon etiketleri ayrıştırmak için kullanıyorum bir RegEx optimize etmek gerekir. Bir etiket, tek bir etiket veya bir eşleşen çifti olabilir. Bazı etiketleri bir örnek:
{static:input:title type="input"}
{static:image:picture}<img src="{$img.src}" width="{$img.width}" height="{$img.height"} />{/static:image:picture}
İşte ben şu anda düzgün ne gerek seçer ama RegexBuddy hata ayıklayıcı aracılığıyla koştu ve HTML sayfası oldukça büyük olup olmadığını bir maç yapmak için on adım binlerce alır var RegEx olduğunu.
{static([\w:]*)?\s?(.*?)}(?!"|')(?:((?:(?!{static\1).)*?){/static\1})?
Bu etiket ile eşleştiği zaman, Grup 1 tüm kolon ayrılmış kelime parametrelerdir. Grup 2 parametreleridir. Grup 3 (bu etiketi çifti varsa) her bir etiketi arasında içeriğidir.
Ben de benim koşullu etiketleri içindeki bu etiketleri sopa zaman ben de sorun yaşıyorum. Böyle bir şey (Grup 2 aşağıda hem eşleşen etiketleri boş olmalı) düzgün grup 2 eşleşmiyor:
{if "{static:image:image1}"!=""}
<a href="{static:image:image1}" rel="example_group" title="Image 1"></a></li>
{/if}
Çalışması için gereken diğer bir durum, aynı etiketi bir satırda iki kez kullanılan, ancak ilk örneği tek etiketi ile ikinci bir etiket çifti olarak kullanılan kullanılıyor olması. Yani böyle bir şey:
{static:image:picture}
{static:image:picture}<img src="{$img.src}" width="{$img.width}" height="{$img.height"} />{/static:image:picture}
Iki ayrı karşılaşmalar olması gerekir. İlk maç Yalnızca grubu 1. olurdu. İkinci maç grup 1 ve grup 3 olurdu.
Kimse daha fazla bilgi gerekiyorsa, sormaya çekinmeyin. CMS CakePHP framework kullanarak PHP inşa edilmiştir.
Bana yardımcı olabilecek herkese büyük şeref: D!