phpbar.de logo

Mailinglisten-Archive

[php] Regex zum Dritten

[php] Regex zum Dritten

Alex Emken php at emken.com
Mit Jun 16 21:44:46 CEST 2004


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