Je remarque un code de ligne dans la bibliothèque Spree:
label_with_first_letters_capitalized = t(options[:label]).gsub(/bw/)#{$&.upcase}
quelqu'un pourrait-il me dire ce que signifie "$ &"? Merci!
Réponses:
8 pour la réponse № 1Voici une référence à certaines de ces variables spéciales autorisées dans ruby. Fondamentalement, celui-ci retourne quelle que soit la dernière correspondance de motif.
De la page liée:
$&
contient la chaîne correspondante de la correspondance de modèle réussie précédente.>> "the quick brown fox".match(/quick.*fox/) => #<MatchData:0x129cc40> >> $& => "quick brown fox"
3 pour la réponse № 2
Lors de mes tests, il semble que ce soit le dernier match que gsub
eu. Donc, par exemple, si j'ai ceci:
"Hello, world!".gsub(/o./, "a")
$&
serait mis à or
, parce que c'est le dernier match qui gsub
rencontré.
1 pour la réponse № 3
$&
est la chaîne associée à la dernière expression rationnelle réussie. Par exemple:
foobar = "foobar"
regex = /b.{2}/
if regex.match(foobar) then
puts $& # -> bar
end