Ruby: $1

ruby中变量$1来储存capture group(...)捕获到的内容,例如:

"foobar" =~ /foo(.*)/
# => 0
$1
# => "bar"

如果不想储存的话,可以使用non-capturing group,例如:

"foobar" =~ /foo(?:.*)/
# => 0
$1
# => nil

$1相对的还有一个\1,但只用于subgsub方法,例如:

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

# 还可以这么用
"foobarfoo".sub(/foo(bar)(foo)/, '\1\2\2')
# => "barfoofoo"

参考: