我曾经从一个字符串chomp
中删除多个"\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"
我曾经从一个字符串chomp
中删除多个"\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"
由于您需要从字符串的末尾剥离,请使用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()
如果您真的只想删除换行符,而不是其他空格,strip
并且rstrip
(删除所有空格)不是答案。正则表达式/\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"
"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$/,'')