如何从Ruby中的字符串末尾删除多个\ n?

时间:2012-11-16 14:20:38

标签: ruby

我使用chomp从字符串中删除多个\n,但它只从字符串中删除一个\n。如何从字符串中删除多个\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"

4 个答案:

答案 0 :(得分:9)

方法strip将负责为您删除所有前导和尾随空格

如果您只想从字符串末尾删除\n,可以使用正则表达式,例如:

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

rstrip!

string.rstrip!

答案 1 :(得分: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()

答案 2 :(得分:0)

如果您真的只想删除换行符,而不要删除其他空格,则striprstrip(删除所有空格)不是答案。正则表达式/\n+\Z/将在字符串末尾匹配任意数量的换行符:

str1 = "text \t\n\n\n"
# => "text \t\n\n\n"
str1.sub(/\n+\Z/, '')
# => "text \t"

请注意,这对多行字符串也有效(并且不使用多行正则表达式修饰符/m),而在字符串中间保留换行符:

str2 = str1 + str1 + str1
# => "text \t\n\n\ntext \t\n\n\ntext \t\n\n\n"
str2.sub(/\n+\Z/, '')
# => "text \t\n\n\ntext \t\n\n\ntext \t"

答案 3 :(得分:-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$/,'')
相关问题