Hallo,
Wie explode ich denn komplett nach Umbrüchen? Mit jeder anderen Version hab ich es nicht hinbekommen.
(\r\n|\r|\n)
(\r\n muss am Anfang stehen, damit er das zuerst erkennt und danach erst nach \r oder \n alleine sucht)
Genausowenig wie ich es hinbekommen habe statt \s -> [:space:] zu benutzen, obwohl überall steht, dass das funktionieren sollte.
Weil das [[:space:]] heißt. Der Witz ist, dass man bei Perl-kompatiblen regulären Ausdrücken \s sowohl direkt schreiben kann als auch in Zeichenklassen - d.h. [abc\s] würde alle Leerzeichen und die Buchstaben a, b nud c matchen. Wenn Du jetzt innerhalb einer Zeichenklasse \s durch [:space:] ersetzt, erhälst Du das richtige Ergebnis, d.h. [abc[:space:]] würde genauso wie [abc\s] funktionieren. Und wenn Du das \s allein ersetzen willst, dann musst Du halt ne Zeichenklasse draus machen, d.h. [[:space:]].
Allerdings: Wenn Du sowieso preg_* (also preg_match, preg_split, ...) nimmst, dann würde ich auf die POSIX-Zeichenklassen [:...:] verzichten - sie machen den Ausdruck in meinen Augen durch ihre Größe einfach nur unübersichtlich und bei \s sieht man zumindest meiner Meinung besser, was gemeint ist (zumal man sich bei \s keine Sorgen um die Klammerung oder so machen muss).
Ferner: Für z.B. das extrem nützliche \b gibt's keine Entsprechung in der POSIX-Syntax, weswegen man dann zwei verschiedene Syntax-Arten mischen müsste, um beides zu verwenden, was noch ein Grund ist, davon abzuraten.
Viele Grüße,
Christian