一、表达式解析
这里假设已经识别出来表达式,如何识别验证码图片里的表达式,放在下面讲。涉及到的正则表达式的解析放在本篇文章最后面。
import re
# 表达式解析(支持小数的 +-*/ 和中文运算符)
def parse_math_expression(text):
# 替换中文运算符为英文
text = text.replace('加', '+').replace('减', '-').replace('乘', '*').replace('除', '/')
text = text.replace('x', '*').replace('X', '*').replace('÷', '/')
# 正则表达式提取表达式中的数字和运算符
# match = re.search(r'(\d+)\s*([+\-*/]|加|减|乘|除)\s*(\d+)', text)
match = re.search(r'(\d+(?:\.\d+)?)\s*([+\-*/]|加|减|乘|除)\s*(\d+(?:\.\d+)?)', text) # 可匹配小数
if not match:
return None
num1, operator, num2 = match.groups()
try:
num1 = float(num1)
num2 = float(num2)
# 计算结果
if operator == '+':
result = num1 + num2
elif operator == '-':
result = num1 - num2
elif operator == '*'

最低0.47元/天 解锁文章
2819

被折叠的 条评论
为什么被折叠?



