Readonly Readonly - 1 year ago 112
Ruby Question

$1 and \1 in Ruby

When using regular expressions in Ruby, what is the difference between $1 and \1?

Answer Source

\1 is a backreference which will only work in the same sub or gsub method call, e.g.:

"foobar".sub(/foo(.*)/, '\1\1') # => "barbar"

$1 is a global variable which can be used in later code:

if "foobar" =~ /foo(.*)/ then 
  puts "The matching word was #{$1}"


"The matching word was bar"
# => nil
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download