python-3.x - 从公式字符串中删除指数
问题描述
我想通过取出算术运算符将所有操作数与公式(以字符串的形式)隔离开来:“+”,“-”,“/”,“*”,“**2”公式字符串类似于:
"y=A+B1*options+B2*items**2+B3*factor+B4"
但是:我可以管理大多数算术运算符,但指数“**2”部分除外。它必须是通配符搜索左右(不是位置),因为整个公式将来可能会改变,也可能有另一个指数(例如**5或**54)
剥离“**”的最简单方法是什么?出公式在哪里?可以是任何数字吗?
解决方案
要匹配您想要的模式,请使用正则表达式字符串r"\*\*\d+"
Breakdown:
r""
是如何在 python 中表示正则表达式(re
有关更多信息,请参阅模块)\*
匹配单个*
字符 - 因为*
是正则表达式中的特殊字符,我们用\
\d
匹配一个数字+
至少一次贪婪地匹配先前的模式:这意味着它将尝试找到至少一个数字,然后继续寻找数字直到它找不到更多。因此,它将匹配**2
,**44382
,依此类推
至于从等式中剥离模式,您可以这样做re.sub(pattern, "", equation)
- 用任何内容替换模式的所有实例
推荐阅读
- php - PHP Group Array 值然后求和
- report - Dynamics GP:无法找出发票报告的表格
- django - Celery 完成后将任务保存在内存中
- shopify - Shopify 将订单项输出为 json 值
- sql-server - SQL Server 查询运行 - 但未返回任何数据
- android - 点击后退按钮后存储变量
- vim - 在 Vim 上设置颜色主题
- python - 取一个列表,根据连续的重复值返回一个 True/False 列表
- android - 返回总和和平均使用房间
- asp.net-core - ASP.Net Core - 使用 WebAPI 和 MVC 前端的 JWT 身份验证不起作用