Mazze: regexp für verschachtelte links

Beitrag lesen

Hi zusammen,

eine knifflige Frage, zu der ich leider noch nichts finden konnte:

Würde gerne aus einem xml-snippet dieser Art

<bar>abc <foo>innen anfang <foo>ganz innen </foo>blindtext </foo>innen ende <foo>auch innen </foo>xyu </bar>

die einzelnen <foo>-Bereiche z.B. via regexp extrahieren (um sie weiter zu verarbeiten, und durch was anderes zu ersetzen)

Das Problem ist hierbei die Verschachtelung, denn ein regexp der Art

$code = preg_replace('/<foo>(.+?)</foo>/is', $replaces , $code);

würde ja alles vom ersten <foo> bis zum ersten </foo> ersetzen und damit die Verschachtelung ignorieren.

Hat jemand eine Idee, ob das mit regexp überhaupt geht, bzw. wie man es sonst machen könnte?

Vielen Dank für die Mithilfe,

Mazze