正则表达式:在计算中提取功率
我需要从表达式中获取幂列表,例如:
'2 * x ** 3 + x ** -1 + x**4'
预期的结果是
[3, -1, 4]
我不知道如何做到这一点,因此我不能包括我尝试过的任何尝试。
我将不胜感激任何建议
回答
'**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]
关于正则表达式的一些解释:
**- 你需要转义,**因为*在正则表达式中意味着任何字符。
s*- 在**您可能不需要空格或多个空格之后
(-?d+) - 它将允许您拥有正整数和负整数。