1

我曾经从一个字符串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"
4

4 回答 4

8

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

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

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

或者rstrip!

string.rstrip!
于 2012-11-16T14:23:54.277 回答
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()
于 2012-11-16T14:27:45.220 回答
0

如果您真的只想删除换行符,而不是其他空格,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"
于 2020-02-07T23:25:37.857 回答
-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$/,'')
于 2012-11-16T14:25:37.050 回答