【发布时间】:2020-10-11 01:46:39
【问题描述】:
首先,我想说我对这门语言非常陌生,但对于简单的物理方程,我的计算器应用程序已经很深入了。我的计划是先制作一个主屏幕和另一个计算屏幕,一旦我能做到最好,我将继续制作其余屏幕。
在这个特定的屏幕中(可能还有其他大多数我必须使用此功能的屏幕)我已经建立了一个自定义 TextInput,它只允许数字 0-9 和一个小数点。但是,我目前正在努力弄清楚如何在我允许的输入集中包含一个否定符号。
这是代码:(我发现它是开源的,我了解物流,但我还没有完全了解re.compile函数)
class FloatInput(TextInput):
pat = re.compile('[^0-9]') <----THIS IS WHERE I TRIED TO ADD ^[+-]? w/ NO LUCK :(
def insert_text(self, substring, from_undo=False):
pat = self.pat
if '.' in self.text:
s = re.sub(pat, '', substring)
else:
s = '.'.join([re.sub(pat, '', s) for s in substring.split('.', 1)])
return super(FloatInput, self).insert_text(s, from_undo=from_undo)
【问题讨论】:
-
请正确格式化您的代码,click here to learn how。
-
你不必尖叫
标签: python regex filter compilation textinput