gsub - 如何成为高效的leet发生器

ale*_*mur 2 ruby regex

为了好玩我在ruby创建了一个简单的leet(1337)发生器

所以我正在做这样的事情,虽然有效,但看起来效率不高,我相信它只能用一条线完成......

    def leet
       words = words.gsub(/a/, '4')
       words = words.gsub(/e/, '3')
       words = words.gsub(/i/, '1')
       words = words.gsub(/o/, '0')
       words = words.gsub(/s/, '5')
       words = words.gsub(/t/, '7')
       puts words
    end
Run Code Online (Sandbox Code Playgroud)

你能在这里给我一个帮助吗?:) 谢谢!

meg*_*gas 7

def leet(word)
  puts word.gsub(/[aeiost]/,'a'=>'4','e'=>'3','i'=>'1','o'=>'0','s'=>'5','t'=>'7')
end
Run Code Online (Sandbox Code Playgroud)


Dig*_*oss 5

def leet s
  s.tr 'aeiost', '431057'
end
Run Code Online (Sandbox Code Playgroud)