что означает "$ &" в Ruby - PullRequest
       11

что означает "$ &" в Ruby

9 голосов
/ 22 июня 2011

Я заметил одну строку кода в библиотеке веселья:

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

Может кто-нибудь сказать мне, что означает "$ &"? спасибо!

Ответы [ 3 ]

9 голосов
/ 22 июня 2011

Вот ссылка на некоторые специальные переменные, разрешенные в ruby ​​. По сути, этот возвращает то, что было последним совпадением с шаблоном.

со связанной страницы:

$& содержит сопоставленную строку из предыдущего успешного сопоставления с образцом.

>> "the quick brown fox".match(/quick.*fox/)
=> #<MatchData:0x129cc40>
>> $&
=> "quick brown fox"
4 голосов
/ 22 июня 2011

В моем тестировании это был последний матч, который получил gsub. Так, например, если у меня есть это:

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

$& будет установлен на or, потому что это последнее совпадение, с которым gsub столкнулся.

2 голосов
/ 22 июня 2011

$& - это строка, которая соответствует последнему успешному регулярному выражению.Например:

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

if regex.match(foobar) then
    puts $&    # -> bar
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...