首页 > 解决方案 > 从公式字符串中删除指数

问题描述

我想通过取出算术运算符将所有操作数与公式(以字符串的形式)隔离开来:“+”,“-”,“/”,“*”,“**2”公式字符串类似于:

"y=A+B1*options+B2*items**2+B3*factor+B4"

但是:我可以管理大多数算术运算符,但指数“**2”部分除外。它必须是通配符搜索左右(不是位置),因为整个公式将来可能会改变,也可能有另一个指数(例如**5或**54)

剥离“**”的最简单方法是什么?出公式在哪里?可以是任何数字吗?

标签: python-3.xstringreplace

解决方案


要匹配您想要的模式,请使用正则表达式字符串r"\*\*\d+"
Breakdown:

  • r""是如何在 python 中表示正则表达式(re有关更多信息,请参阅模块)
  • \*匹配单个*字符 - 因为*是正则表达式中的特殊字符,我们用\
  • \d匹配一个数字
  • +至少一次贪婪地匹配先前的模式:这意味着它将尝试找到至少一个数字,然后继续寻找数字直到它找不到更多。因此,它将匹配**2, **44382,依此类推

至于从等式中剥离模式,您可以这样做re.sub(pattern, "", equation)- 用任何内容替换模式的所有实例


推荐阅读