2011-06-22 4 views
8

をどういう意味:

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

誰かが「$ &」は何を意味しているのを私に言うことができますか?ありがとう!

答えて

8

ここにはreference to some of those special variables allowed in rubyがあります。基本的に、これは最後のパターン一致が何であっても返します。リンク先のページから

$&は、前回の成功したパターンマッチからマッチした文字列が含まれています。私のテストで

>> "the quick brown fox".match(/quick.*fox/) 
=> #<MatchData:0x129cc40> 
>> $& 
=> "quick brown fox" 
+0

このリンクはありません – ebrohman

+0

@ebrohmanありがとう、waybackアーカイブバージョンへの更新リンク。 – drharris

+0

@drharris:また、ページの関連部分を直接回答に含めることもできますか? –

3

gsubが得たことを最後の試合のように見えます。だから、たとえば、私が持っている場合は、この:それはgsubが発生したことを最後の試合があるので

"Hello, world!".gsub(/o./, "a") 

$&は、orに設定されます。

1

$&は、最後に正常な正規表現によってマッチした文字列です。例:

foobar = "foobar" 
regex = /b.{2}/ 

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