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.