利用正则表达式判断用户输入的字符串是否只有小写字母或数字或者大写字符。
一般网络密码要求有:a:长度大于8 b:有字母,数字 c:既有大写,又有小写。利用正则表达式判断用户输入的密码是否符合要求。
测试:
代码:
# encoding:utf-8
import re
lowerRegex = re.compile('[a-z]')
upperRegex = re.compile('[A-Z]')
digitRegex = re.compile('[0-9]')
wrongRegex = re.compile('[^a-zA-Z0-9]')
while True:
password = input('请输入大于8位的包含大小写字母和数字的密码:')
if len(password) < 8:
print('输入的密码小于8位')
elif wrongRegex.search(password) is not None:
print('包含无效字符')
else:
if lowerRegex.search(password) is None:
print('未包含小写字母')
elif upperRegex.search(password) is None:
print('未包含大写字母')
elif digitRegex.search(password) is None:
print('未包含数字')
else:
print('输入成功')
break
用一个正则匹配就行
import re
str='A341233333a'
print(re.match("^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])){8,}.*$",str))
def validPin(str):
import re
t = re.match("^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]))\S{8,}$",str)
if t: return True
return False
psw = input()
print(validPin(psw))
#################
print('其它口令测试:')
print(validPin('A0a134567'))
print(validPin('A0a12456'))
print(validPin('A0a1245'))
print(validPin('AA123456'))
print(validPin('aa123456'))
print(validPin('AAbbccdd'))