私はこの文字列を持っています:
"some text\nandsomemore"
「\ n」を削除する必要があります。私はもう試した
"some text\nandsomemore".gsub('\n','')
しかし、それは機能しません。どうすればいいのですか?読んでくれてありがとう。
Gsubで"\n"
ではなく'\n'
を使用する必要があります。異なる引用符は異なる動作をします。
二重引用符"
は、文字の展開と式の補間を許可します。 \n
のようなエスケープされた制御文字を使用して真の値(この場合はnewlineを表し、#{expression}
を使用すると、変数を織り込むことができます。また、テキストにRuby式を追加できます。
一方、一重引用符'
は文字列を文字通り処理するため、展開、置換、補間、または何が必要かはありません。
この特定のケースでは、.delete
または.tr
Stringメソッドを使用して、newlinesを削除することをお勧めします。
文字列を置き換えるのではなく、削除する場合は、String#delete
(またはそのミューテーターに相当するString#delete!
)を使用できます。例:
x = "foo\nfoo"
x.delete!("\n")
x
が「foofoo」に等しくなりました
この特定のケースでは、String#delete
はgsub
よりも読みやすくなります。これは、実際に文字列を何かに置き換えていないためです。
文字列の先頭と末尾の空白をすべて削除したい場合は、strip
メソッドを使用できます。
" hello ".strip #=> "hello"
"\tgoodbye\r\n".strip #=> "goodbye"
前述のとおり here 。
editこの質問の元のタイトルは異なっていました。私の答えは元の質問に対するものです。
これには正規表現は必要ありません。 trを使用します。
"some text\nandsomemore".tr("\n","")
rubyのchomp
またはstrip
関数を使用します。
"abcd\n".chomp => "abcd"
"abcd\n".strip => "abcd"