When using regular expressions in Ruby, what is the difference between $1 and 1?
1 is a backreference which will only work in the same sub or gsub method call, e.g.:
sub
gsub
"foobar".sub(/foo(.*)/, '11') # => "barbar"
$1 is a global variable which can be used in later code:
if "foobar" =~ /foo(.*)/ then puts "The matching word was #{$1}" end
Output:
"The matching word was bar" # => nil
548k questions
547k answers
4 comments
86.3k users