.search():单次搜索首次出现的字符
re.match(re.compile(),匹配字符串) : 判断字符串匹不匹配正则表达式:
是否符合强口令:
强口令 = 大写+小写+数字, >8
.match()
import re,sys
rule1 = re.compile(r'.*[A-Z]+')
rule2 = re.compile(r'.*[a-z]+')
rule3 = re.compile(r'.*[0-9]+')
def is_valid_secret(secret):
if len(secret) < 8 :
print('长度不能小于8')
return False
if not re.match(rule1,secret):
print('么有大写')
return False
if not re.match(rule2,secret):
print('么有小写')
return False
if not re.match(rule3,secret):
print('么有数字')
return False
return True
while True:
print('请输入密码(空退出):')
secret = input()
if secret == '':
sys.exit()
print(is_valid2(secret))
.search()
rule4 = re.compile(r'[A-Z]')
rule5 = re.compile(r'[a-z]')
rule6 = re.compile(r'[0-9]+')
def is_valid2(secret):
if len(secret) < 8 :
print('长度不能小于8')
return False
res1=rule4.search(secret)
res2=rule5.search(secret)
res3=rule6.search(secret)
if res1==None:
print('么有大写')
return False
if res2==None:
print('么有小写')
return False
if res3==None:
print('么有数字')
return False
return True
while True:
print('请输入密码(空退出):')
secret = input()
if secret == '':
sys.exit()
print(is_valid2(secret))
总结:
re.match() : 必须要第一个开始就匹配,如果在rule1前没有.*
的话始终是无法同时匹配的。而.search():只需要找到即可,如果需要从第一个开始匹配 的话 用^
开头$
结尾