Ben aşağıdaki örnek şablon kodu var.
{# @T('core.layout:Logged in as {0} {1}', @user('firstname'), @user('lastname')) #} {# VAR_TEST #}
Ve aşağıdaki regex etiketleri için ayrıştırmak için kullanılan
/{# (\@)?(([A-Z][^#}]+)|(([a-zA-Z0-9\_]+)?\(([^#}]*)\))) #}/
Nedeniyle sadece ilk etiketi yakın kaşlı (}) son etiketi eşleşir ancak. Ben regex uzman ve böylece sorun yok değilim. Ben #} desen, yani [^ #}] hariç her karakter kullanarak Tag Yakın # sonra bir şey} eşleşen etiketleri durdurarak eşleşen sınırlamak için çalışılıyor. Ancak bu tek karakterleri ve bir bütün olarak değil #} dize eşleştirme.
Size nasıl her şeyi karşılayan bir regex yazmak ama bir dize değil, karakter sınıfı modunda?
Fyi, regex lezzet PHP ve preg_match olduğunu.
1 düzenlemek;
Yani maç gerekir
{# @T('core.layout:Logged in as {0} {1}', @user('firstname'), @user('lastname')) #}
ve
{# VAR_TEST #}
aynı regex. Ancak ilk test maçı daha sonraki bir noktada daha regexes ile bozuldu çok karmaşık etiketini gösterir.