Regulärer Ausdrück geht nicht

mti

Grünschnabel
Hi,
ich will in einem String den Text:##user on## ... #user on of# durch ein leerzeichen erstetzen. Nur hab ich das Problem das er den regülaren Ausdruck nicht akzeptiert. Im RegexCoach gehts abber ohne Probleme.
Code:
$lesen_bearbeitet=preg_replace("!##user on## (.*) ##user on of##!"," ",$lesen_bearbeitet);
so sieht mein Ersetzungscode aus. Woran liegt es das es nicht geht?
MFG
 
Nimm mal die Leerzeichen vor und nach (.*) aus dem Ausdruck heraus....vielleicht hilfts ja weiter.

Ansonsten....erstreckt sich das Ganze über mehrere Zeilen?
 
Ah es ging nicht da sich der Text über mehrere Zeilen erstreckt hat. Wie müsste ich denn den Ausdruck ändern damit er auch geht wenn der Text über mehrere Zeilen geht?
THX for help
 
Code:
$lesen_bearbeitet=preg_replace("!##user on##(.*?)##user on of##!s"," ",$lesen_bearbeitet);

....das s setzt die Option PCRE_DOTALL, dadurch findet der Punkt auch dn Zeilenumbruch(was er per Default nicht tut.)

Das FRagezeichen macht das Suchmuster "Ungierig" :-)
 
Zuletzt bearbeitet:
Zurück