首页 > 代码库 > 正则表达式-计算器
正则表达式-计算器
利用正则表达式计算下面值:
1 - 2 * ( (60 - 30 + (-40.0/5) * (9 - 2 * 5/3 + 7 / 3 * 10/4*2 +10 *5/14)) -(-4*3)/(16-3*2))
import re def wipe(s): #定义去除重复+-号函数 res=s.replace("+-","-").replace("++","+").replace("--","+").replace("-+","-") return res def add_num(s):#定义加减法运算函数 # s.replace("+-", "-").replace("++", "+").replace("--", "+").replace("-+", "-") wipe(s) while True: res = re.split("([+-]?\d+\.?\d*[\+-][+-]?\d+\.?\d*)", s) if len(res) == 3 and "+" in res[1]: a, b = res[1].split("+") res_s = float(a)+float(b) res[1] = res_s re.sub("([+-]?\d+\.?\d*[\+-][+-]?\d+\.?\d*)", str(res), s) elif len(res) == 3 and "-" in res[1]: a, b = res[1].split("-") res_s = float(a)-float(b) res[1] = res_s re.sub("([+-]?\d+\.?\d*[\+-][+-]?\d+\.?\d*)", str(res), s) def mul(s):#定义乘除法运算 while True: wipe(s) res=re.split("([+-]?\d+\.?\d*[\*/][+-]?\d+\.?\d*)", s) if len(res)==3 and "*"in res[1]: a,b=res[1].split("*") res_s=float(a)*float(b) res[1]=res_s re.sub("([+-]?\d+\.?\d*[\*/][+-]?\d+\.?\d*)",str(res),s) elif len(res)==3 and "/"in res[1]: a,b=res[1].split("/") res_s=float(a)/float(b) res[1]=res_s re.sub("([+-]?\d+\.?\d*[\*/][+-]?\d+\.?\d*)",str(res),s) def get(s):#定义取括号内运算式函数 res=re.sub(" ","",s) res1=re.search("\([^()]+\)",res).group() res2=res1.strip("()") return res2
正则表达式-计算器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。