【发布时间】:2015-12-08 23:18:04
【问题描述】:
我想知道是否可以使用正则表达式来求解带有实数以及运算符 +、-、*、/ 和 ^ 的简单数学表达式。
例如,输入是一个字符串,如“3.5+4^2”(也可以写成“+3.5+4^2”),输出是 19.5。我的想法是让正则表达式首先将 ^ 识别为首先执行的过程。所以他会取 4^2 并返回 16,所以表达式是 '3.5+16'。然后它会识别 + 并返回 19.5。
另一个输入示例是 -4+5.5*4/2 --> -4+22/2 --> -4+11 --> 7
【问题讨论】:
-
你可以使用
eval函数。print eval('3.5+4**2') > 19.5 -
我假设你只是想玩这个。但是表达式不是从常规语法构建的。您需要一个支持上下文无关语法的解析器。例如:stackoverflow.com/questions/559763/…
-
@Valijon
eval是一个糟糕的解决方案,除非你真的知道你在做什么。
标签: python regex python-2.7