那么为什么这不起作用?我正在创建一个匹配公式的正则表达式(这是一个更大的标准描述的一部分)。但是我被困在这里,因为它似乎不想匹配公式中的嵌入式公式。ruby递归正则表达式
stat = /(Stat3|Stat2|Stat1)/
number_sym = /[0-9]*/
formula_sym = /((target's)?#{stat}|#{number_sym}|N#{number_sym})\%?/
math_sym = /(\+|\-|\*|\/|\%)/
formula = /^\((#{formula}|#{formula_sym})(#{math_sym} (#{formula}|#{formula_sym}))?\)$/
p "(target's Stat2 * N1%)".match(formula).to_s #matches
p "((target's Stat2 * N1%) + 3)".match(formula).to_s #no match
p "(Stat1 + ((target's Stat2 * N1%) + 3))".match(formula).to_s #no match
谢谢......我确实发现它为什么不能正常工作......我猜应该把我的问题解释为“我怎样才能得到它”......看起来像#{formula.source}显示公式仍然是零。 – 2010-04-15 18:53:19