我正在使用ruby而我正在尝试将长长的空白缩小为单个字符。这是我正在尝试的代码:
str = hello world how are you
puts str.gsub(/\s/, '#')
输出我当前的代码:
hello#world####how#####are##you
期望的输出:
hello#world#how#are#you
知道如何达到我想要的输出吗?
答案 0 :(得分:6)
尝试:
puts str.gsub(/\s+/, '#')
答案 1 :(得分:3)
你很接近,你错过了正则表达式与多个空格的匹配。试试这个:
str.gsub(/\s+/, '#')
希望有所帮助。
答案 2 :(得分:2)
str = hello world how are you
puts str.gsub(/\s+/, '#')
# => hello#world#how#are#you
答案 3 :(得分:2)
"hello world how are you"
.squeeze(" ").tr(" ", "#")
# => "hello#world#how#are#you"
答案 4 :(得分:0)
[当用户Iain要求解释我所做的事情时]
在Regex中,\ s +表示1个或多个空白字符。使用ruby的gsub方法,我将使用'#'替换匹配模式(在本例中为1个或多个空白字符)。字符。而且,我正在irb中测试此示例代码。
1.9.3-p327 :013 > str = "hello world how are you"
=> "hello world how are you"
1.9.3-p327 :016 > str.gsub(/\s+/, '#')
=> "hello#world#how#are#you"
额外提示:rubular是一个很棒的在线工具,可以测试和使用Regexp!