Zeilenumbruch in Regex

Raven280438

Erfahrenes Mitglied
Hi,

ich programmiere grade ein kleines Template-System.
Folgendes Problem:

Ich suche einen regulären Ausdruck der den Text zwischen "{if[email]}" und "{endif}" rausfiltert. Das funktioniert soweit auch schon mit folgendem Ausdruck:
PHP:
$tmp_regex = "/{if\[email\]}(.*?){endif}/i";
$tmp_replace = "\\1";
$text = preg_replace($tmp_regex,$tmp_replace,$text);

Das funktionert aber nur mit folgendem Beispieltext:
Code:
{if[email]}<a href="mailto:{email}">MAIL</a>{endif}

sobald nach "{if[email]}" ein Zeilenumbruch kommt geht es nicht mehr.
z.B.
Code:
{if[email]}
<a href="mailto:{email}">MAIL</a>
{endif}


Wo liegt am regEx der Fehler?



Gruß
 
Du musst den „s“-Modifikator setzen. Dass reguläre Ausdrücke für solche Aufgaben aber allein nicht geeignet sind, wirst du feststellen, sobald es mehrere verschachtelte Anweisungen gibt.
 
Zurück