我想知道如何通过函数调用保留 $1、$~ 等的值。我正在编写一些接受正则表达式作为参数的函数,在调用函数后让这些函数可用会很有用(我想我可以将 MatchData 与另一个返回值一起传递出去,但这种方式看起来更像红宝石方式...)。
这是一个演示问题的简短脚本:
def foo()
"abc123" =~ /(\d+)/
puts "I see $1: #{$1}"
end
foo()
puts "I see $1: #{$1}"
对我来说,这打印出来:
I see $1: 123
I see $1:
顺便说一句,这些类型的变量是否有一些规范的名称?仅仅称它们为“正则表达式全局变量”就很难在 Google 上搜索!