Ruby中的"$&"是什么意思

why*_*why 9 ruby syntax global-variables

我注意到spree库中的一行代码:

label_with_first_letters_capitalized = t(options[:label]).gsub(/\b\w/)#{$&.upcase}
Run Code Online (Sandbox Code Playgroud)

有人能告诉我"$&"是什么意思吗?谢谢!

drh*_*ris 9

这是对ruby中允许的一些特殊变量引用.基本上,这个返回最后一次模式匹配.

来自链接页面:

$& 包含上一个成功模式匹配的匹配字符串.

>> "the quick brown fox".match(/quick.*fox/)
=> #<MatchData:0x129cc40>
>> $&
=> "quick brown fox"
Run Code Online (Sandbox Code Playgroud)