Python正则表达式

利用正则表达式判断密码是否符合要求,满足要求输出“密码设置成功”,否则输出“密码不符合要求,请重新设置”。密码的具体要求如下:必须由10-15位指定字符组成:数字,大写字母,小写字母,下划线,要求四种类型的字符都出现才算合法的密码。例如:Aatb32_67mnqb才是合格的强密码。

import re
pattern = re.compile(ur'^[a-zA-Z0-9_]{10,15}$')
str = u''
print(pattern.search(str))

 

python 代码:[纯代码]

 

import string
num = input(">>>>>")
num = set(num)
chars = string.ascii_lowercase
upper = string.ascii_uppercase
number = {str(i) for i in range(11)}
ta = {'_'}
length = len(num)

if 15 >= length >= 10:
    chars = set(chars)
    upper = set(upper)
    if num & chars and num & upper and num & number and num & ta and not num - chars - upper - number - ta:
        print('强密码')
    else:
        print("弱密码")
else:
    print("bad password length")

 

可以参考博文:https://season.blog.csdn.net/article/details/103667744

<span class="hljs-string">""" 
@Time    : 2021/6/25 10:46
@Author  : Keep Doing this
@FileName: CSDN利用正则表达式判断密码.py
@SoftWare: PyCharm
"""</span>
<span class="hljs-keyword">import</span> re

<span class="hljs-comment"># 密码至少8位数</span>
rule_1 = re.<span class="hljs-built_in">compile</span>(<span class="hljs-string">r'\w{8,15}'</span> )
<span class="hljs-comment"># 密码同时包含大小写字母和下划线</span>
rule_2 = re.<span class="hljs-built_in">compile</span>(<span class="hljs-string">r'([a-z].*[A-Z])|([A-Z].*[a-z])|{_}'</span>)
<span class="hljs-comment"># 密码同时包含大小写字母和下划线</span>
rule_4 = re.<span class="hljs-built_in">compile</span>(<span class="hljs-string">r'_'</span>)
<span class="hljs-comment"># 密码至少有一位数字</span>
rule_3 = re.<span class="hljs-built_in">compile</span>(<span class="hljs-string">r'\d'</span> )
<span class="hljs-comment"># 密码不符合要求的显示</span>
NO = <span class="hljs-string">u'输入的密码不够安全!'</span>
<span class="hljs-comment"># 密码符合要求的显示</span>
YES = <span class="hljs-string">u'输入的密码很安全!'</span>

<span class="hljs-built_in">print</span>(<span class="hljs-string">u'请输入密码:'</span> )
passwd = <span class="hljs-built_in">input</span>(<span class="hljs-string">'>'</span>)
flag=<span class="hljs-number">1</span>
<span class="hljs-keyword">while</span> flag!=<span class="hljs-number">0</span>:
    <span class="hljs-keyword">if</span> rule_1.search(passwd) == <span class="hljs-literal">None</span>:
        <span class="hljs-built_in">print</span>(NO, <span class="hljs-string">"密码长度必须为8~15"</span>)
        flag=<span class="hljs-number">1</span>
    <span class="hljs-keyword">elif</span> rule_2.search(passwd) == <span class="hljs-literal">None</span>:
        <span class="hljs-built_in">print</span>(NO, <span class="hljs-string">"缺少大写或小写字母"</span>)
        flag = <span class="hljs-number">1</span>
    <span class="hljs-keyword">elif</span> rule_3.search(passwd) == <span class="hljs-literal">None</span>:
        <span class="hljs-built_in">print</span>(NO, <span class="hljs-string">"缺少数字"</span>)
        flag = <span class="hljs-number">1</span>
    <span class="hljs-keyword">elif</span> rule_4.search(passwd) == <span class="hljs-literal">None</span>:
        <span class="hljs-built_in">print</span>(NO,<span class="hljs-string">"缺少下划线"</span>)
    <span class="hljs-keyword">else</span>:
        <span class="hljs-built_in">print</span>(YES)
        flag = <span class="hljs-number">0</span>
    <span class="hljs-keyword">if</span> flag==<span class="hljs-number">1</span>:
        <span class="hljs-built_in">print</span>(<span class="hljs-string">"请重新输入密码:"</span>)
        passwd = <span class="hljs-built_in">input</span>(<span class="hljs-string">'>'</span>)

img