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

我有一根绳子:

"some text\nandsomemore"

我得把“ n”去掉,我试过了

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

但它不工作。我该怎么做呢? 谢谢阅读。

185307 次浏览

你需要在你的 gsub 中使用 "\n"而不是 '\n'。不同的引号表现不同。

双引号 "允许字符扩展和表达式插值即。它们允许你使用转义控制字符,比如 \n来表示它们的真值,在这个例子中是 新线,并允许使用 #{expression},这样你就可以将变量和几乎任何你喜欢的红宝石表达式编织到文本中。

而在另一方面,单引号 '从字面上对待字符串,所以没有扩展,替换,插值或什么有你。

在这种特殊情况下,最好使用 .delete.tr String 方法来删除 新台词

更多信息请点击这里

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

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

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

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

x现在等于“ foofoo”

在这种情况下,String#deletegsub更具可读性,因为实际上并没有用任何东西替换字符串。

如果您希望或不介意从字符串中删除所有前导空格和尾随空格,可以使用 strip方法。

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

如上所述 给你

这个问题的原始标题是不同的,我的答案是原始问题。

使用 Ruby 中的 chompstrip函数:

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