web-dev-qa-db-ja.com

Ruby文字列の最初と最後で改行を削除する方法

Ruby(ある種のトリミング)の文字列の最初と最後の改行を削除する必要があります。

しかし、最初と最後だけです...文字列の中央にある新しい行はそのままにしておく必要があります。

ありがとうございました!

22
content01

String#strip メソッドを使用できます。

"\tgoodbye\r\n".strip   #=> "goodbye"
40
Daniel O'Hara

String.stripは、前面と背面から余分な空白をすべて削除し、内部をそのままにします。

http://Ruby-doc.org/core/classes/String.html#M001189

3
chaqke

プラットフォームに依存しないバージョンの NPatelの回答 は次のとおりです。

"\nabc\ndef\n".gsub(/^#{$/}/, "").gsub(/#{$/}$/, "")
1

空白だけを削除することが目的の場合は、stripメソッドが機能するはずです...しかし、新しい行を具体的にターゲットにしようとしている場合は、次のことを試してください。

"\r\na b c d\r\ne f g\r\n".gsub(/^\r\n/, "").gsub(/\r\n$/, "")
=> "a b c d\r\ne f g"

gsubメソッドは、正規表現を使用して、「」で置き換えるために最初の^と最後の$の場所をターゲットにします。

注:ここでは、改行が\ r\nであると仮定しました。これはプラットフォームに依存しない場合があります。

1
Patelify

これはそれを行う必要があります:

string.lstrip!.rstrip!
0
ennuikiller