Ich habe eine Zeichenfolge in Ruby, s
(sagen wir), die eine der Standard-Zeilenenden (\n
, \r\n
, \r
) haben kann. Ich möchte alle diese zu \n
s konvertieren. Was ist der beste Weg?Normalisieren Zeilenenden in Ruby
Dies scheint ein sehr häufiges Problem, aber es gibt nicht viel Dokumentation darüber. Offensichtlich gibt es einfache grobe Lösungen, aber ist da etwas eingebaut, um damit umzugehen?
Elegante, idiomatische Ruby-Lösungen sind die besten.
EDIT: erkannt, dass ^M
und \r
sind gleich. Aber es gibt immer noch drei Fälle. (Siehe wikipedia.)
Zwei Dinge: Sie müssen \ r \ n zuerst in die Regex setzen oder sonst wird es nie übereinstimmen (weil alle, die sonst b \ r \ n passen könnten, zuerst von \ r \ n verglichen werden). Und '\ n' == "\\ n", während das was du willst ist "\ n". – sepp2k
Ändern Sie die einfachen Anführungszeichen in doppelte Anführungszeichen. Sonst funktioniert es nicht wie vorgesehen. –
Es scheint, wir sind alle auf der gleichen Seite :) –