有人可以详细向我解释以下Ruby代码吗?

时间:2015-07-13 22:42:23

标签: ruby

我差点在Code Wars中遇到这个挑战但是,我吹了它,因为我对gsub的了解充其量只是低于标准。虽然我粗略理解gsub的概念,但我希望对它有更透彻的理解(可以使用它的不同方式对我的开发有所帮助)以及对下面代码的一点点解释。 / p>

def autocorrect(input)
  input.gsub(/\b(you+|u)\b/i, 'your sister')
end

1 个答案:

答案 0 :(得分:1)

您正在接受包含与所显示的正则表达式匹配的任何字符串,并将其替换为第二个参数,在这种情况下,"您的姐妹"。正则表达式在Ruby中有点棘手,但基本上正则表达式说:

    /   #starts the reg exp
    \b  #any word boundary
    (you+|u)   #the word 'you' with one or more of the letter 'u' added after it (so youuuuu would fit) or just the letter 'u' alone with a 'y' or 'o'... the pipe symbol is an or statement in reg-exp. taking one or the other for a match.  
    \b  #again finishing a word boundary
    /   #closes the expression. 

Checkout Rubular提示。 http://rubular.com/