擅长:python、mysql、java
<p>不要使用nums和'+'滚动您自己的算术表达式,而是使用pyparsing的<code>operatorPrecedence</code>轻松定义一个4函数的算术表达式:</p>
<pre><code>arith_expr = operatorPrecedence(num,
[
(oneOf('-'), 1, opAssoc.RIGHT),
(oneOf('* /'), 2, opAssoc.LEFT),
(oneOf('+ -'), 2, opAssoc.LEFT),
])
</code></pre>
<p>然后将<code>num("left") + "+" + num("right") + Optional("=") + Optional(num)("total")</code>替换为:</p>
^{pr2}$
<p>现在您将能够解析任何算术表达式,包括带有嵌套括号的表达式,而不仅仅是'x+y=z'类型的表达式。在</p>