我差点在Code Wars中遇到这个挑战但是,我吹了它,因为我对gsub
的了解充其量只是低于标准。虽然我粗略理解gsub
的概念,但我希望对它有更透彻的理解(可以使用它的不同方式对我的开发有所帮助)以及对下面代码的一点点解释。 / p>
def autocorrect(input)
input.gsub(/\b(you+|u)\b/i, 'your sister')
end
答案 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/