1

関数呼び出しで $1、$~ などの値を保持する方法を考えています。私は引数として正規表現を受け入れるいくつかの関数を書いています.関数が呼び出された後にこれらを利用できると便利です. 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 で検索するのが難しくなります!

4

1 に答える 1

0

もし私があなたなら、$1それらをグローバル変数に格納するのではなく、メソッドから戻ります。

def foo()
    "abc123" =~ /(\d+)/
    $1
end

puts "blah is #{foo}"
于 2013-11-10T08:35:07.050 に答える