如何从一个Rubystring中删除string“\ n”?
我有这个string:
"some text\nandsomemore"
我需要从中删除“\ n”。 我试过了
"some text\nandsomemore".gsub('\n','')
但它不起作用。 我该怎么做? 谢谢阅读。
你需要在你的gsub中使用"\n"
而不是'\n'
。 不同的引号标记行为有所不同。
双引号"
允许字符扩展和expression式插值,即它们让你使用像\n
这样的转义控制字符表示它们的真实值,在这种情况下, 换行符 ,并允许使用#{expression}
所以你可以编织variables, ,几乎任何你喜欢的文本中的rubyexpression式。
而另一方面,单引号'
string处理”,所以没有扩展,replace,插值或你有什么。
在这种情况下,最好使用.delete
或.tr
string方法来删除换行符 。
在这里看到更多的信息
当你想删除一个string,而不是replace它,你可以使用String#delete
(或者它的mutator相当于String#delete!
),例如:
x = "foo\nfoo" x.delete!("\n")
x
现在等于“foofoo”
在这个特定的情况下, String#delete
比gsub
更具可读性,因为你实际上并没有用任何东西replacestring。
如果您想要或不介意删除string中的所有前导空格和尾部空白,则可以使用strip
方法。
" hello ".strip #=> "hello" "\tgoodbye\r\n".strip #=> "goodbye"
如这里所述 。
编辑这个问题的原始标题是不同的。 我的答案是针对原来的问题。
你不需要这个正则expression式。 使用tr:
"some text\nandsomemore".tr("\n","")
使用Ruby的chomp
或strip
函数:
"abcd\n".chomp => "abcd" "abcd\n".strip => "abcd"
看这里:
- 如何用一个换行符replace一行中的多个换行符