$1 and \1 in Ruby

后端 未结 2 1399
再見小時候
再見小時候 2020-12-07 15:59

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

2条回答
  •  天涯浪人
    2020-12-07 16:26

    \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}"
    end
    

    Output:

    "The matching word was bar"
    # => nil
    

提交回复
热议问题