我希望能够在其中随机放置一个带有'WUB'字样的字符串,并删除那些用空格替换的实例。
实施例。 “WUBWUBWUBWEWUBWUBAREWUBWUBWUBTHEWUBCHAMPIONSWUBWUBMYWUBFRIENDS”
变成...... 我们是我的朋友们的冠军
然而,问题在于我收到的每个“WUB”都有额外的空白区域。如何取出额外的空白区域并仅保留一个空白区域?
def song_decoder(song)
song.gsub!(/WUB/, " ")
song.strip!
print song
return song
end
song_decoder("WUBWUBWUBWEWUBWUBAREWUBWUBWUBTHEWUBCHAMPIONSWUBWUBMYWUBFRIENDS")
# above is test case
答案 0 :(得分:2)
/WUB/
获得所有" WUB"在字符串中,所以如果有一些连续的,你将有两个空格,并在结果上使用条带,只删除所有空格,所以不会是你期望的。
你可以得到任何" WUB"作为群组,并用'替换它们。 &#39 ;.由于这个特定的结果只留下了一个初始的空格(第一个字符),lstrip
会处理它:
str = 'WUBWUBWUBWEWUBWUBAREWUBWUBWUBTHEWUBCHAMPIONSWUBWUBMYWUBFRIENDS'
p str.gsub(/(WUB)+/, ' ').lstrip
# "WE ARE THE CHAMPIONS MY FRIENDS"
答案 1 :(得分:0)
我刚刚找到了挤压方法!
def song_decoder(song)
song.gsub!(/WUB/, " ")
song.strip!
song.squeeze!(" ")
print song
return song
end
这正是我所需要的。我很抱歉。
答案 2 :(得分:0)
没有正则表达式:
"WUBWUBWUBWEWUBWUBAREWUBWUBWUBTHEWUBCHAMPIONSWUBWUBMYWUBFRIENDS".
split('WUB').reject(&:empty?).join(' ')
#⇒ "WE ARE THE CHAMPIONS MY FRIENDS"