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



我注意到spread库中有一行代码:

label_with_first_letters_capitalized = t(options[:label]).gsub(/bw/)#{$&.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

相关内容

  • 没有找到相关文章

最新更新