我需要从表达式中获取幂列表,例如:
'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+)
- 它将允许您拥有正整数和负整数。
关于python - 正则表达式:在计算中提取功率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67613588/