我有一个存储在哈希中的替换规则“表”,其中每个键是规则,每个值是一个方法,它将获取匹配的文本并将其作为参数发送。每个方法都会返回一个字符串。除了我不知道如何发送所有比赛。我如何填写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) }