Ich habe diese Zeichenfolge:
"some text\nandsomemore"
Ich muss das "\ n" daraus entfernen. ich habe es versucht
"some text\nandsomemore".gsub('\n','')
aber es funktioniert nicht. Wie mache ich es? Danke fürs Lesen.
Sie müssen "\n"
nicht '\n'
in Ihrem gsub verwenden. Die verschiedenen Anführungszeichen verhalten sich unterschiedlich.
Doppelte Anführungszeichen "
ermöglichen die Zeichenerweiterung und Ausdrucksinterpolation, d. H. Mit ihnen können Sie maskierte Steuerzeichen verwenden , um \n
ihren wahren Wert darzustellen, in diesem Fall Newline , und die Verwendung von verwenden, #{expression}
damit Sie Variablen und so ziemlich jeden beliebigen Rubinausdruck in den Text einbinden können.
Auf der anderen Seite '
behandeln einfache Anführungszeichen die Zeichenfolge wörtlich, sodass es keine Erweiterung, Ersetzung, Interpolation oder was Sie haben.
In diesem speziellen Fall ist es besser, die Zeilenumbrüche entweder mit der Methode .delete
oder mit der .tr
Methode String zu löschen .
tr
eine bessere Wahl für diese Aufgabe ist, aber wie gesagt, ich fand es besser, auf den Unterschied in einfachen, doppelten Anführungszeichen hinzuweisen, wenn ich antwortete.Wenn Sie eine Zeichenfolge entfernen möchten, anstatt sie zu ersetzen, können Sie Folgendes verwenden
String#delete
(oder das entsprechende Mutator-ÄquivalentString#delete!
), z.x
jetzt gleich "foofoo"In diesem speziellen Fall
String#delete
ist es besser lesbar alsgsub
da Sie die Zeichenfolge nicht durch irgendetwas ersetzen.quelle
delete
ist es nicht destruktiv, wie hier angegeben. Es wird eine neue Zeichenfolge zurückgegeben.Wenn Sie möchten oder nicht möchten, dass alle führenden und nachfolgenden Leerzeichen aus Ihrer Zeichenfolge entfernt werden, können Sie die
strip
Methode verwenden.wie hier erwähnt .
bearbeiten Der ursprüngliche Titel für diese Frage war anders. Meine Antwort ist für die ursprüngliche Frage.
quelle
strip
nur führende und nachfolgendeSie brauchen dafür keinen regulären Ausdruck. Verwenden Sie tr:
quelle
replace
Ändert einfach die Zeichenfolge in eine neue, z. B. die Variablenzuweisung. wohingegentr
es sich um ein zeichenweises globales Suchen und Ersetzen handelt.Verwendung
chomp
oderstrip
Funktionen von Ruby:quelle
strip
entfernt nur führende und nachfolgendeSchau hier:
quelle