2012-11-16 65 views
1

我使用chomp从字符串中删除了多个\n,但它只从字符串中删除一个\n。如何从字符串中删除多个\n字符?如何从Ruby的字符串结尾删除多个 n?

我的字符串如下所示: -

"Ttyyuhhhjhhhh\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" 
+0

我看到你是比较新的Stackoverflow(顺便说一下,我也是)。请记住,在提出问题后,一旦/如果您收到真正回答您问题的答案,最好批准该问题。 @gargvipan –

回答

9

方法strip会照顾你删除所有开头和结尾空格的。

如果你只是想从字符串的结尾去掉\n您可以使用正则表达式,如:

string.gsub!(/(\n*)$/, '') 

rstrip!

string.rstrip! 
+0

那么,“...领先和尾随*白色空间......”*。 – DigitalRoss

+0

你是对的,我一直认为空白只是指水平空间,但我[见](http://en.wikipedia.org/wiki/Whitespace_character)现在垂直也包含在定义中。谢谢。编辑。 –

+1

'(\ n *)'是不必要的复杂的。没有必要对'\ n'进行分组,也不关心没有换行符的情况,所以使用'\ n'本身:'sub(/ \ n + $ /,'')'就是所有这些需要。 –

-2
"Ttyyuhhhjhhhh\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n".gsub(/\n$/,'') 
+0

正则表达式是错误的。 '/ $ \ n /'会在当前行后面找到新行,而不是当前行末尾的新行。相反,你需要'/ \ n $ /'。 –

+0

谢谢锡人,我纠正了它。 – Teddy

8

当你需要剥去从字符串末尾开始,使用rstrip

str = "Ttyyuhhhjhhhh\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" 
str.rstrip() 
相关问题