所以我有正则表达式字符串
/((\+|-)?(\d+)(\w?)(\^?\d*))|((\+|-)?(\w)(\^?\d*)(\^?\d*)(?=\+|-))/g
它应该匹配代数项(符号+系数+变量+指数),因此ax^2 +bx +c
形式的二次函数将是一组三个匹配。它还匹配有符号和无符号整数(例如+5
,-2
,4
)。但是,除了后跟运算符(+/-)之外,它本身并不匹配代数项,如x^2
。这在标准形式方面很好,但如果有多项式函数,如x^3-x^2+x
,则最后一个项不会匹配。
我可以为正则表达式添加更多条件以匹配更多情况,但我觉得它变得过于繁琐。所以问题是,我该怎么做?有更有效的方法吗?
答案 0 :(得分:0)
我建议使用以下正则表达式:
[+-]?(\w?\^?\d*)([+-]\w?\^?\d*)?([+-]?\w|\d)
捕获组(\w?\^?\d*)
会将变量与指数匹配,而不是或(|
)匹配可以使用字符类[+-]
的符号。