我想知道如何通過函數調用來保留$ 1,$〜等的值。我正在寫一些接受正則表達式作爲參數的函數,並且在函數被調用後讓這些函數可用是很有用的(我想我可以將MatchData與其他返回值一起傳遞出去,但是這種方式看起來更像Ruby的方式...)。Ruby-通過函數調用保存正則表達式全局變量
以下是一個演示問題的一個簡短的腳本:
def foo()
"abc123" =~ /(\d+)/
puts "I see $1: #{$1}"
end
foo()
puts "I see $1: #{$1}"
對於我來說,這個打印出:
I see $1: 123
I see $1:
順便說一句,有沒有這些類型的變量的一些規範名稱?只要將它們稱爲「正則表達式全局」,就很難在Google上搜索!
這不是紅寶石般的方式。這是perl的方式。甚至不要嘗試去做。在全局變量中傳遞狀態很糟糕,可以嗎? :) –
順便說一句:http://stackoverflow.com/a/3747135/125816 –