ハッシュに格納された置換ルールの「テーブル」があります。各キーはルールであり、各値は一致したテキストを取得して引数として送信するメソッドです。各メソッドは文字列を返します。すべての試合を送る方法がわからないことを除いて。send
これを達成するために、呼び出しにコメントを入力するにはどうすればよいですか?
Sub_Rules = {
/N\[(\d+)\]/i => :do_something,
/N\[(\d+)\]\[(\d+)\]/i => :do_something_else
}
def do_something(*args)
"something based on the args"
end
def do_something_else(*args)
"something else based on the args"
end
text = "N[2]"
Sub_Rules.each {|rule, method|
p text.gsub(rule) {send(method, #the matches?)}
}
ハードコーディングしたい場合は、次のようにします。
text.gsub(/N\[(\d+)\]/i) { do_something($1) }