“ $&”在Ruby中是什么意思

| 我注意到spree库中有一行代码:
label_with_first_letters_capitalized = t(options[:label]).gsub(/\\b\\w/)#{$&.upcase}
有人可以告诉我\“ $&\”是什么意思吗?谢谢!     
已邀请:
        这是ruby中允许使用的一些特殊变量的参考。基本上,这个返回的是最后一个模式匹配。 从链接页面:   
$&
包含上一次成功的模式匹配中的匹配字符串。
>> \"the quick brown fox\".match(/quick.*fox/)
=> #<MatchData:0x129cc40>
>> $&
=> \"quick brown fox\"
    
        在我的测试中,这似乎是
gsub
获得的最后一场比赛。因此,例如,如果我有这个:
\"Hello, world!\".gsub(/o./, \"a\")
$&
将被设置为
or
,因为那是
gsub
遇到的最后一个匹配项。     
        
$&
是最后成功的正则表达式匹配的字符串。例如:
foobar = \"foobar\"
regex = /b.{2}/

if regex.match(foobar) then
    puts $&    # -> bar
end
    

要回复问题请先登录注册