Ich schreibe gerade eine einfache Templateengine. Um bestimmte Bereiche mehrmals ausführen zu können, habe ich einen entsprechenden XML-Tag eingeführt den ich über einen regulären Ausdruck suche.
Ein Abschnitt in einem Template kann wie folgt aussehen.
<loop id="menu"> <li><a href="%url%" onclick="showGalleryEvent('gallerywrapper', '%url%');return false;"><img src="%thumb%" alt="Gallery vom %date%"/><br/>%date%</a></li> </loop>
Folgender Regex (vereinfacht dargestellt) funktioniert soweit und liefert mit auch den Inhalt des "loop-Tags"
"/<loop\ id=\"menu\">[\s]*(.*)[\s]*<\/loop>/"
Nun zum eigentlichen Problem. Dieser Regex funktioniert anscheinend nicht, wenn der Inhalt des loop-Tags sich über mehrere Zeilen streckt, wie hier:
<loop id="menu"> <li> <a href="%url%" onclick="showGalleryEvent('gallerywrapper', '%url%');return false;"><img src="%thumb%" alt="Gallery vom %date%"/><br/>%date%</a> </li> </loop>
Irgendwas muss ich am Regex ändern...aber was?
Wäre schön, wenn mir einer auf die Sprünge helfen könnte.
Edit:
Erledigt, danke an kasbah. Am Ende muss noch ein s hin, wie folgt:
"/<loop\ id=\"menu\">[\s]*(.*)[\s]*<\/loop>/s"
Dieser Beitrag wurde von Witi bearbeitet: 24. Juli 2007 - 09:20