您可以在gsub
的第二个参数中使用哈希。我看到的所有例子通常在第一个参数中都有我不理解的东西,例如:
def doctorize(string)
string.gsub(/M(iste)?r/, 'Mister' => 'Doctor', 'Mr' => 'Dr')
end
doctorize('Mister Freeze') # => 'Doctor Freeze'
doctorize('Mr Smith') # => 'Dr Smith'
如果有人能解释这一点,我很感激。谁能帮忙?
第一个参数始终只是一个正则表达式。正则表达式上的 Ruby 文档对 Ruby 中的正则表达式有一个很好的解释。或者在一般情况下搜索"正则表达式"或"正则表达式"。
在链接的文章中,第一个是"字符类"([leto]
将匹配任何单个字符l
,e
,t
或o
),第二个是"组"或"捕获组"与"0或1次"量词组合((ister)
将匹配字符串"ister"作为一个组,?
意味着整个组可能出现0或一次, 因此,正则表达式 M(ister)?r
将匹配 "先生" 或 "先生")。