Entonces, ¿por qué no funciona? Estoy creando una expresión regular que coincidirá con una fórmula (que luego es parte de una descripción estándar más grande). Pero estoy atrapado aquí, ya que no parece querer combinar fórmulas integradas dentro de una fórmula.rubí recursivo regex
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
gracias ... y descubrí por qué no funcionaba ... supongo que debería haber formulado mi pregunta como "¿cómo puedo hacer que funcione? ... parece que # {formula.source} mostró que la fórmula todavía era nula. –