那麼爲什麼這不起作用?我正在創建一個匹配公式的正則表達式(這是一個更大的標準描述的一部分)。但是我被困在這裏,因爲它似乎不想匹配公式中的嵌入式公式。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