正则表达式:在计算中提取功率

Mes*_*Qin 3 python regex

我需要从表达式中获取幂列表,例如:

'2 * x ** 3 + x ** -1 + x**4'
Run Code Online (Sandbox Code Playgroud)

预期的结果是

[3, -1, 4]
Run Code Online (Sandbox Code Playgroud)

我不知道如何做到这一点,因此我不能包括我尝试过的任何尝试。


我将不胜感激任何建议

lmi*_*asf 5

'\*\*\s*(-?\d+)'按照以下代码中的建议使用此正则表达式:

>> import re
>> s = '2 * x ** 3 + x ** -1 + x**4'
>> exponents = [int(exponent) for exponent in re.findall('\*\*\s*(-?\d+)', s)]
>>> exponents
[3, -1, 4]
Run Code Online (Sandbox Code Playgroud)

关于正则表达式的一些解释:

\*\*- 你需要转义,**因为*在正则表达式中意味着任何字符。

\s*- 在**您可能不需要空格或多个空格之后

(-?\d+) - 它将允许您拥有正整数和负整数。