Beim Testen einer Antwort für another user's question fand ich etwas, das ich nicht verstehe. Das Problem bestand darin, alle wörtlichen \t
\n
\r
Zeichen aus einer Zeichenfolge mit einem einzelnen Leerzeichen zu ersetzen.Extra Backslash in PHP Regexp Muster benötigt
nun das erste Muster habe ich versucht war:
/(?:\\[trn])+/
, die überraschenderweise nicht funktionierte. Ich habe das gleiche Muster in Perl versucht und es hat gut funktioniert. Nach einigem Versuch und Irrtum fand ich, dass PHP will 3 oder 4 Schrägstriche für das Muster zu entsprechen, wie in:
/(?:\\\\[trn])+/
oder
/(?:\\\[trn])+/
diese Muster - zu meiner Überraschung - beide arbeiten. Warum sind diese zusätzlichen Backslashes notwendig?
Perl reguläre Ausdrücke in die Sprache integriert sind, so dass Sie nur zwei Schrägstriche müssen. –