Bei folgendem String soll das fettgeschriebene gematcht werden.
Folgende Regexp tut den Job bei einmaligem Vorkommen der {foreach}{/foreach} Schleife.
Das Problem ist, dass diese Regexp bei einem Zweiten {foreach} innerhalb des äusseren {foreach} Blocks das erste aufkommen des {/foreach} erkennt und folgemäßig denkt, "fertig".
Sprich: Bei vorkommen von einem oder mehreren {/foreach} 's in dem String, soll immer das letzte genommen werden.
Darauf können aber noch Zeichen folgen, ^ und $ ist uns also keine Hilfe.
Wär göttlich wenn mich jemand auf den richtigen Weg bringen könnte.
Code:
{foreach from="[b]arrayname[/b]" as="[b]foobar[/b]"}
[b]kein oder mehr beliebige zeichen
{foreach from="arrayname" as="foobar"}
kein oder mehr beliebige zeichen
{/foreach}
kein oder mehr beliebige zeichen
[/b]
{/foreach}
kein oder mehr beliebige zeichen
Folgende Regexp tut den Job bei einmaligem Vorkommen der {foreach}{/foreach} Schleife.
Code:
=\{foreach from\="(\w+)" as\="(\w+)"\}(.*)\{/foreach\}=s
Sprich: Bei vorkommen von einem oder mehreren {/foreach} 's in dem String, soll immer das letzte genommen werden.
Darauf können aber noch Zeichen folgen, ^ und $ ist uns also keine Hilfe.
Wär göttlich wenn mich jemand auf den richtigen Weg bringen könnte.