Vậy tại sao điều này không hoạt động? Tôi đang tạo một regex mà sẽ phù hợp với một công thức (đó là một phần của một mô tả tiêu chuẩn lớn hơn). Nhưng tôi bị kẹt ở đây, vì nó không xuất hiện để phù hợp với các công thức nhúng trong một công thức.ruby đệ quy 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
cảm ơn ... và tôi đã khám phá lý do tại sao nó không hoạt động ... tôi đoán tôi nên đặt câu hỏi của mình là "làm thế nào tôi có thể làm việc" .... trông giống như # {formula.source} đã chỉ ra rằng công thức vẫn là nil. –