どちらがパフォーマンスが良いのか 正規表現のグループ化を行って、 $1 等で値を取得する場合と scan メソッドを使って値を取得するのはどちらが高速なのだろうか。 名前からすると scan メソッドの方が高速な気がするが。。。 実測 以下のようなメソッドを作成してみた。 1 def reg_test(str) 2 if str =~ /\d+([a-z])\d+([a-z])/ 3 #puts $1 4 #puts $2 5 end 6 end 7 8 def scan_test(str) 9 str.scan(/\d+([a-z])\d+([a-z])/) do |m| 10 #puts m[0] 11 #puts m[1] 12 end 13 end 14 15 str = "123a456b789" 16 0.upto(10000) { |n| 17 reg_test str 18