Ruby如何去掉一个以上的空格字符?

z4bn682m  于 5个月前  发布在  Ruby
关注(0)|答案(4)|浏览(44)

Ruby好的,如果字符串中有空格字符的话,我想删除一个以上的空格字符。我的意思是,假设我有一个这样的文本:

I want to     learn ruby more and more.

字符串
在“to”之后和“learn”之前有一个以上的空格字符,它可能是一个制表符,也可能是几个空格,现在我想要的是,我怎么知道在一个文本文件中是否有这样的东西,我想让它每个单词或字符串只有一个空格,所以它会变成这样

I want to learn ruby more and more.


我可以使用Gsub吗?或者我需要使用其他方法吗?我尝试了Gsub,但不知道如何以正确的方式实现它,以便它可以产生我想要的结果。希望我解释清楚。任何帮助都很感激,谢谢。

rhfm7lfc

rhfm7lfc1#

字符串#squeeze删除多个字符的游程:

'I want to     learn ruby more and more.'.squeeze(' ')
# => "I want to learn ruby more and more."

字符串

jv4diomz

jv4diomz2#

您可以使用gsub将一个或多个空白(regex / +/)替换为单个空白:

'I want to     learn ruby more and more.'.gsub(/ +/, " ")
#=> "I want to learn ruby more and more."

字符串

33qvvth1

33qvvth13#

使用这个正则表达式来删除字符串中的所有空格,包括空格制表符。我用它来删除登录字段中电子邮件地址的空格。

'   I want to   learn ruby more and more.'.gsub(/\s/,"")
# => "Iwanttolearnrubymoreandmore."

字符串
/\s/匹配任何空白字符,包括tab,而/ +/不会。

b4wnujal

b4wnujal4#

如果要删除空格并将其替换为单个“”,

" Bring   ME \n the   Horizon".squish
# => "Bring ME the Horizon"

%{ Multi-line
   string }.squish                   # => "Multi-line string"

" foo   bar    \n   \t   boo".squish # => "foo bar boo"

字符串
https://apidock.com/rails/String/squish

相关问题