я следующий фрагмент, где я хотел бы извлечь код между {foreach}
и {/foreach}
, используя регулярное выражение:Регулярное выражение: матч ничего, кроме полного символического
{foreach (...)}
Some random HTML content <div class="">aklakdls</div> and some {$/r/template} markup inside.
{/foreach}
У меня уже есть:
{foreach [^}]*}
, но после этого я ничего не могу с этим поделать. Есть ли способ сопоставить что-нибудь BUT {/ foreach} в целом? Обратите внимание, что содержимое между {foreach} {/ foreach} также может содержать "{$" токенов.
Edit: & ответы Томалак в BaileyP являются правильными, но я выбрал ответ BaileyP в ради простоты.
Да. Сейчас я чувствую себя немного глупо. :-D Иногда я думаю, что слишком сложно, набирал то же самое только сейчас. +1 – Tomalak
Это, конечно, не безупречно. Вложенные петли foreach будут разбивать его, но это проблема, которую вы не можете решить с помощью регулярных выражений в любом случае. –
Вы можете делать вложенные петли foreach с помощью Perl6 Grammars и Perl 5.10 regexps. –