我用Kivy
做类似“语法分析器”的工作,使用re
(正则表达式)。在
我只想检查基本操作的有效语法(比如+|-|*|/|(|))。 用户将字符串(用键盘)录下来,我用regex验证它。 但我不知道如何在if语句中使用regex。我想要的是:如果用户给我带来的字符串不正确(或者没有用正则表达式检查),那么打印类似“inavlid string”的内容,如果是正确的,则打印“Valid string”。在
我试过:
if re.match(patron, string) is not None:
print ("\nTrue")
else:
print("False")
但是,不管string
有什么功能,应用程序总是显示True
。在
对不起,我的英语不好。任何帮助将不胜感激!在
^{pr2}$if obj1= "53.22+22.11+10*555+62+55.2-66"
实际上它是正确的,并且应用程序打印“有效…”,但是如果我把a
这样"a53.22+22.11+10*555+62+55.2-66"
这样的"a53.22+22.11+10*555+62+55.2-66"
就不正确了,应用程序必须打印invalid..
,但它仍然是{
正则表达式总是匹配的,因为它允许空字符串匹配(因为整个正则表达式都包含在可选组中)。在
如果您测试这个live on regex101.com,您可以立即看到它,并且它与整个字符串不匹配,只匹配它的一部分。在
我已经纠正了您的character classes中关于使用不必要/有害的交替运算符(
|
)和不正确的破折号位置,使其成为范围运算符(-
)的两个错误,但仍然不正确。在我想你想要更像这样的东西:
测试一下live on regex101.com。在
这回答了您关于如何将if与regex一起使用的问题:
注意事项:regex公式不会排除所有无效输入,例如两个小数点(“..”)、两个运算符(“++”)等。所以请调整它以满足您的具体需要)
作为用于单个字符串而不是列表的函数:
^{pr2}$输出:
相关问题 更多 >
编程相关推荐