如何从Ruby字符串中删除字符串“\n”?

92vpleto  于 2023-10-17  发布在  Ruby
关注(0)|答案(6)|浏览(123)

我有这个字符串:

"some text\nandsomemore"

我得把“\n”去掉我试过

"some text\nandsomemore".gsub('\n','')

但它不起作用我该怎么做?谢谢你的阅读。

mw3dktmi

mw3dktmi1#

你需要在你的gsub中使用"\n"而不是'\n'。不同的引号表现不同。
双引号"允许字符扩展和表达式插值。它们允许你使用像\n这样的转义控制字符来表示它们的真实值,在这个例子中,newline,并允许使用#{expression},这样你就可以将变量和几乎任何你喜欢的ruby表达式编织到文本中。
而另一方面,单引号'从字面上处理字符串,所以没有扩展,替换,插值或其他什么。
在这种情况下,最好使用.delete.tr String方法来删除 newlines
查看更多信息

svujldwt

svujldwt2#

如果你想或者不介意删除字符串中所有的前导和尾随空格,你可以使用strip方法。

"    hello    ".strip   #=> "hello"   
"\tgoodbye\r\n".strip   #=> "goodbye"

如前所述here

    • 我的回答是针对最初的问题。
2uluyalo

2uluyalo3#

当你想删除一个字符串,而不是替换它,你可以使用String#delete(或它的mutator等价物String#delete!),例如:

x = "foo\nfoo"
x.delete!("\n")

x现在等于“foofoo”
在这种特定情况下,String#deletegsub更可读,因为实际上并没有用任何东西替换字符串。

bvjxkvbb

bvjxkvbb4#

你不需要正则表达式。使用tr:

"some text\nandsomemore".tr("\n","")
im9ewurl

im9ewurl5#

使用Ruby中的chompstrip函数:

"abcd\n".chomp => "abcd"
"abcd\n".strip => "abcd"
piok6c0g

piok6c0g6#

出于某种原因,这些答案在我的情况下都不起作用,我想出了自己的解决方案:

"some text\nandsomemore".split.join

相关问题