wenn ich die funktion preg_replace anwende, also z.B.
$str = "egal";
$str = preg_replace('#(e)(gal)#u', '\1\n\2', $str);
echo $str;
dann wird bei mir \n nicht als newline interpretiert sondern auch wirklich als \n ausgegeben (genauso \t und \r)
brauche aber newline im Ersatz?
Na die Backslashes, die wirklich welche sein sollen, musst du dann natürlich maskieren.
Oder du nimmst gleich das Dollarzeichen, um die Back References anzusprechen.
preg_replace() benötigt man gar nicht so häufig. Es ist eine gute Möglichkeit, mit komplexe Suchmustern Ersetzungen zu erzeugen. str_replace() arbeitet für einfache Aufgaben schneller; zudem ist es auch übersichtlicher. Dein Beispiel könnte also so aussehen:
und nicht zu vergessen: alle regexes sind - zu mindest in php - wahre resourcenfresser! (siehe http://swtch.com/~rsc/regexp/regexp1.html und noch weitere fast 3Mi. docs im netz).