Je l'extrait suivant où je voudrais extraire le code entre le {foreach}
et {/foreach}
utilisant une expression régulière:Expression régulière: Faites correspondre quelque chose mais plein jeton
{foreach (...)}
Some random HTML content <div class="">aklakdls</div> and some {$/r/template} markup inside.
{/foreach}
J'ai déjà:
{foreach [^}]*}
mais je suis incapable de faire correspondre quoi que ce soit après cela. Y a-t-il un moyen de faire correspondre n'importe quoi, mais {/ foreach} comme un jeton entier? Veuillez noter que le contenu entre {foreach} {/ foreach} peut également contenir des jetons "{$".
Édition: BaileyP's & Les réponses de Tomalak sont correctes, mais j'ai choisi la réponse de BaileyP pour des raisons de simplicité.
Oui. Je me sens un peu stupide maintenant. :-D Parfois, je pense que c'est un peu trop compliqué, je tapais la même chose tout à l'heure. +1 – Tomalak
Ce n'est pas infaillible, bien sûr. Les boucles foreach imbriquées vont le casser - mais c'est un problème que vous ne pouvez pas résoudre avec les expressions régulières seules. –
Vous pouvez faire des boucles foreach imbriquées avec Perl6 Grammars et Perl 5.10 regexps. –