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

标签 python regex

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

'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/

相关文章:

python - Airflow 调度程序异常停止

python - 是否可以使用 python 获取知道序列号的 pendrive 的挂载点?

Python 给出冗长的输出,表明模块正在被销毁

java - 正则表达式中是否有 not (!) 运算符?

javascript - 语法错误 : expected expression, 得到 '.'

python - 在 Django 中命名存档日期

python - 如何在 Python pyppeteer 中将 Accept-Encoding 设置为 gzip 并打印 pyppeteer header ?

php - 正则表达式 - 让任何不是 ' 或 ; 的字符通过

java - 多个相似的正则表达式,有更好的方法吗?

javascript - 过滤此正则表达式中的字符