darkblade: preg_replace_callback - Muster im Suchstring geschachtelt

Hallo liebe Community!

Ich habe ein Problem mit dem richtigen Einsatz der preg_replace_callback-Funktion bei geschachteltem Muster im Suchstring.
Mein Suchstring sieht folgendermaßen aus:

  
[quote:Autor]  
  
[quote:Autor]Text[/quote]  
  
[/quote]  

Die preg_replace_callback-Funktion setze ich wie folgt ein:

$text = preg_replace_callback("/(\[quote:)(.*?)(\])(.*?)(\[\/quote\])/s", array( $this, "scanning" ), $text);

Die Funktion scanning ersetzt die quote-Tags durch HTML-Code.

function scanning($matches)  
{  
    for($i=0;$i<count($matches);$i++)  
    {  
        [Hier werden die quote-Tags dann ersetzt.]  
    }  
}

Nun bekomme ich bei meinem im Suchstring geschachtelten Muster allerdings folgende Ausgabe:

<zitatcontainer>Text - von Autor</zitatcontainer>
[/quote]

Der geschachtelte Quote-Tag wird dementsprechend nicht beachtet oder falsch interpretiert. Wie kann ich meine Funktion entsprechend ändern? Wäre für jegliche Hilfe sehr dankbar.

Freundliche Grüße
darkblade

  1. Nun bekomme ich bei meinem im Suchstring geschachtelten Muster allerdings folgende Ausgabe:
    <zitatcontainer>Text - von Autor</zitatcontainer>
    [/quote]
    Der geschachtelte Quote-Tag wird dementsprechend nicht beachtet oder falsch interpretiert. Wie kann ich meine Funktion entsprechend ändern? Wäre für jegliche Hilfe sehr dankbar.

    /([quote:)(.*?)(])(.*?)([/quote])/
                         ^
    Mache die markierte Stelle expliziter.

    mfg Beat;

    --
    Woran ich arbeite:
    X-Torah
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o