Mailinglisten-Archive |
Mario Aeby wrote: > Oh mein Gott! Jaaa, das war's! *vorfreudehüpf* Somit also nochmals > schwarz auf weiss die Schlussantwort: > > $str_pattern = "/\#[0-9]+\](.*?)(?:\[#|$)/s"; > > Den muss ich mir irgendwo aufschreiben. > Funktioniert aber nicht! Versuch mal zwei Blöcke hintereinader zu matchen. Das Problem ist, dass Du keinen "schließenden" Tag in dem Sinne hast. Dein Endtag ist gleich dem Starttag und wird durch das Muster "mitgematcht". Deswegen hatte ich die eckige öffnende Klammer am Blockanfang und die Raute im "nächsten" Blockanfang weggelassen. Das matcht beide Blocks, habt aber wie Du richtig bemerkt hast den Nachteil, das eine öffnende eckige Klammer innerhalb der Werte ein Problem darstellt. Als Stichwort fällt mir jetzt noch "look behind pattern" ein. Damit kenne ich mich allerdings auch zu wenig aus, als das ich sagen könnte, dass es damit funktioniert. Ich würde als nächstes von der Verarbeitung mit Regex absehen und das Ganze einfach zeilenweise einlesen und dann nach Blöcken auswerten. :/ Viele Grüße, Alex
php::bar PHP Wiki - Listenarchive