以下是代码:
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")
当我输入包含正则表达式中唯一字符的用户名时,会打印“用户名有效”,当我输入仅包含未包含字符的用户名时,会打印“用户名无效,请重试”。
但是,当我输入允许的字符和不允许的字符的组合时,验证密码。我怎样才能这样做,即使其中一个输入的字符不在正则表达式中,程序也会说用户名无效?
提前致谢。
答案 0 :(得分:1)
语义错误是,即使之前的角色没有匹配,您也会覆盖valid
的内容。
完全避免for
循环并将正则表达式更改为"[A-Za-z0-9!£$%^&*]+$"