zoukankan      html  css  js  c++  java
  • <automate the boring stuff with python> 正则强口令实例

    书中7.18的强口令实践题

    写一个函数,它使用正则表达式,确保传入的口令字符串是强口令。强口令的定义是:

    长度不少于8 个字符,同时包含大写和小写字符,至少有一位数字。

    你可能需要用多个正则表达式来测试该字符串,以保证它的强度。

    推荐写法1更接近书中多个正则的含义也更好理解,写法2参考网上零宽断言。

    注意写法1的大小写匹配要分开,如果写为[a-zA-Z]则只会匹配大小写字符之一即可,不满足同时有大小写

     1 #! python3
     2 # 7.18.1 强口令的定义是:长度不少于8 个字符,同时包含大写和小写字符,至少有一位数字。
     3 #你可能需要用多个正则表达式来测试该字符串,以保证它的强度。
     4 
     5 import re
     6 passwd=str(input('enter a passwd: '))
     7 re1=re.compile(r'.{8,}')
     8 re2=re.compile(r'[a-z]')
     9 re3=re.compile(r'd+')
    10 re4=re.compile(r'[A-Z]')
    11 
    12 #写法2
    13 #re9=re.compile(r'^(?=.*[a-z])(?=.*[A-Z])(?=.*d)[a-zA-Zd]{8,}$')
    14 
    15 if re1.search(passwd) and re2.search(passwd) and re3.search(passwd) and re4.search(passwd):
    16 #if re9.search(passwd):
    17     print('passwd is strong enough')
    18 else:
    19     print('passwd need upper,lower,number and more than 8')
  • 相关阅读:
    Go语言 函数return值的几种情况
    VSCode 常用快捷键 Mac
    Java异常处理
    Java面向对象《三》
    C++类模板
    C++函数模板
    盛最多水的容器
    实现 Trie (前缀树)
    排序链表
    类似某团app搜索城市界面中 点击右侧城市首字母,对应城市区域置顶的功能(uniapp)
  • 原文地址:https://www.cnblogs.com/chenzhefan/p/11932988.html
Copyright © 2011-2022 走看看