如何在python中使用正则表达式,以便不包含不包含的字符?

时间:2017-10-20 10:45:21

标签: python regex

以下是代码:

import re
name = input("Enter a username: ")
y = len(name)
for i in range (0, y):
    valid = re.match("[A-Za-z0-9!£$%^&*]", name[i])
if valid:
    print("Username valid")
else:
    print("Username inavlid, try again")

当我输入包含正则表达式中唯一字符的用户名时,会打印“用户名有效”,当我输入仅包含未包含字符的用户名时,会打印“用户名无效,请重试”。

但是,当我输入允许的字符和不允许的字符的组合时,验证密码。我怎样才能这样做,即使其中一个输入的字符不在正则表达式中,程序也会说用户名无效?

提前致谢。

1 个答案:

答案 0 :(得分:1)

语义错误是,即使之前的角色没有匹配,您也会覆盖valid的内容。

完全避免for循环并将正则表达式更改为"[A-Za-z0-9!£$%^&*]+$"