• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

regEx split problem

nvidia

New member
Hallo, ich durch suche einen String nach
$split_pattern = "#(?<=[\r\n|\r|\n]\)[\r\n|\r|\n])#";
$header = preg_split($split_pattern ,$asw);

wenn ich jetzt \n)\n zu Beginn habe, sollte der Teil an dieser Stelle getrennt werden.
Als Ausgabe erhalte ich
ArrayFeld1 => ... \n)
ArrayFeld2 => \n ...
Aber es ist mir nicht verständlich warum es da trennt?
Eigentlich müsste er es nach dem Ausdruck trennen und das \n müsste noch zum ersten Feld gehören.
 
Zuletzt bearbeitet:
also hab nochma nachgeschaut, aber mir fällt nichts auf, was ich falsch maskiert haben könnte.
Was bringt letzteres?
 
... dann siehst du, was du da genau machst...

EDIT: Hm... hab' jetzt mal ein bisschen rumprobiert... bei mir trennt's richtig... ABER ich glaube nicht, dass die RegExp das macht, was du haben willst.
 
Zuletzt bearbeitet:
hm? also bei Mir zeigt er das genauso wieder an nur, dass \n\r \n \r nicht vom Browser angezeigt werden
 
okay ich hab die Lösung gefunden:
$split_pattern = "#(?<=(\r\n\))|(\n\))|(\r\)))(\r\n|\r|\n)#";
erkennt und \r\n)\r\n
und gibt zurück
[0]=>"\r\n)"
[1] => "..." //Also entfernt das nächste \r\n am Anfang

Das Problem lag daran das [\r\n] als [\r|\n] gesehen wird, muss man halt ( verwenden.
Im Lockaround akzeptiert er doch keine (\r\n|\r|\n)\), da er meint dann sei das keine Kette mit fester Zeichenlänge, also muss man das ausschreiben.
gruß nvidia
 
Hm... ist aber irgendwie noch unordentlich (und macht auch nicht ganz das, was du haben willst, da \n) anders behandelt wird als \r\n)):
Code:
$split_pattern = '/(?<=(?:\\r\\n|\\n|\\r)\\)(?:\\r\\n|\\n|\\r))/';
 
Zurück
Oben