如何解决验证Tkinter输入框
我是新手,正在使用较年轻的计算器。我正在尝试验证我的输入框,该输入框仅接受浮点数,数字和运算符(+×÷-,%)。但是我的程序只接受数字,不接受符号。你能帮忙吗
我认为我的条件或Python正则表达式有问题。
这是代码-
from tkinter import *
import re
root = Tk()
def correct(inp):
pattern = re.compile(r'^(\d*\.?\d*)$')
if pattern.match(inp) is not None:
return True
elif inp is "":
return True
else:
return False
a = Entry(root)
e= root.register(correct)
a.config(validate='key',validatecommand=(e,'%P'))
a.pack()
root.mainloop()
解决方法
您的正则表达式仅匹配浮点数:\ d *。?\ d *匹配数字,可选地后面跟一个点和更多数字。如果要匹配的是[float] [operator] [float]之类的模式,则可以使用(只需在方括号中添加所需的运算符)即可:
pattern = re.compile(r'^\d*\.?\d*[+*/\-%]?\d*\.?\d*$')
如果您不关心顺序,只想允许数字和运算符的任何顺序,就可以:
pattern = re.compile(r'^[\d.+*/\-%]*$')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。