利用正则表达式判断用户输入的字符串是否只有小写字母或数字或者大写字符。

利用正则表达式判断用户输入的字符串是否只有小写字母或数字或者大写字符。
一般网络密码要求有:a:长度大于8 b:有字母,数字 c:既有大写,又有小写。利用正则表达式判断用户输入的密码是否符合要求。

测试:

img

代码:


# 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))

img

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'))