找到最嵌套的 (),用 SymPy 解决,并向外工作?

Find the Most Nested (), Solving with SymPy, and Work Outwards?

总体目标是以与人类相同的方式求解一个简单的线性 [one var] 方程。所以,找到最嵌套的(),分配直到所有乘法完成。 (然后组合相似项,然后将 x 的一侧除以常数的另一侧)

我正在尝试找出 Python 方程式中的运算顺序。例如,在

3(18(7x-3)+x) = 90

我想找到嵌套最多的一组 () [在本例中是 7x-3] 并从那里开始计算。我不确定 RegEx 是否是在 Python 中执行此操作的最佳方式。 此外,我使用的是 SymPy,所以在某些情况下,当我找到最嵌套的 () 时,将没有任何问题可以解决,因为无论如何第一步只是乘法。

使用 re.search 而不是 re.match 因为 match 尝试从输入字符串的开头匹配。

>>> import re
>>> s = '3(18(7x-3)+x) = 90'
>>> re.search(r'(?<=\()[^()]*(?=\))', s).group()
'7x-3'