【发布时间】:2020-02-12 19:30:54
【问题描述】:
有人可以帮我为以下多项式表达式创建一个 Java 正则表达式吗?
表达式:9x^2 + 4x + 2
到目前为止,我无法映射常量,我不确定这是否是最好的方法,但这是我最好的理解:
(-?\b\d+) [xx] || ^ (-?\d+\b)
任何帮助都非常感谢谢谢:)
【问题讨论】:
标签: java regex regex-group regular-language polynomials
有人可以帮我为以下多项式表达式创建一个 Java 正则表达式吗?
表达式:9x^2 + 4x + 2
到目前为止,我无法映射常量,我不确定这是否是最好的方法,但这是我最好的理解:
(-?\b\d+) [xx] || ^ (-?\d+\b)
任何帮助都非常感谢谢谢:)
【问题讨论】:
标签: java regex regex-group regular-language polynomials
这是一个通用的正则表达式模式,它适用于任意阶的多项式:
^\d{0,}(?:[a-z](?:\^\d+)?)?(?: [+-] \d{0,}(?:[a-z](?:\^\d+)?)?)*$
我将解释正则表达式的第一部分,它匹配任何单个多项式项。正则表达式的第二个重复部分只是循环这个模式,中间有一个 +/- 分隔符。
\d{0,} match zero or more numbers (coefficients)
(?: turn off capturing
[a-z] match a single variable letter
(?:\^\d+)? then match an optional exponent term
)? close group
请注意,我们通过将可选指数与变量分组来处理它。然后,我们将整个组设为可选。
【讨论】: