私はキーのためのregex
と値のためのblock
とハッシュを持っています。以下のような何か:Rubyで正規表現キャプチャをブロックに渡す方法はありますか?
{ 'test (.+?)' => { puts $1 } }
ない正確ような、明らかに、ブロックはPROCとして格納されているが、それはアイデアだから。
私はその上で、後に正規表現マッチを持っているが、多くこの
hash.each do |pattern, action|
if /#{pattern}/i.match(string)
action.call
end
end
のような考えは、私は将来的には時に拡大することが少し簡単にするために、ハッシュに離れてブロックを保存することだったに見えます、今ではregex
キャプチャはブロックに渡されません。 regex
(いくつかのregex
パターンには1つのキャプチャがあり、他のものには3つがあるかもしれない)のキャプチャをサポートする方法がありますか?
これはあなたの質問には対処しませんが、パターンを正規表現の代わりに文字列として保存する理由は何ですか? – cam
本当の理由はありません。私はハッシュを格納するメソッドを使用しているので、読みやすく( 'on(pattern、&block)ハッシュ[パターン] =ブロックは基本的に私が使っている方法です)、' on 'テストを書くのが簡単だったようです(。+?) 'do do $ 1 end'を実行します。 –