我想知道如何验证tkinter中入口小部件的输入,以便只容纳数字、'-'符号和字母'e'。这个小部件将像5.0e-7一样接受。提前感谢。
想到两种方法:
Regex
检查用户的输入是否与[数字]的模式匹配。[数字]e-[数字]使用正则表达式:
import re
user_input = '5.0e-7'
if re.match(r'd+.d+e-d+', user_input):
print('valid')
else:
print('not valid')
浮动
看起来您的小部件需要指数格式的数字,在这种情况下,python可以将它们转换为浮点值,而不需要regex。这将允许阴性(例如5.0e-7
(和阳性(例如5.0e7
(,这可能是也可能不是你想要的:
user_input = '5.0e-7'
try:
float(user_input)
print('valid')
except:
print('not valid')