如何在Python中测试正则表达式密码? [英] How to test a regex password in Python?

查看:306
本文介绍了如何在Python中测试正则表达式密码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Python中使用正则表达式,如何验证用户密码为:

Using a regex in Python, how can I verify that a user's password is:

  • 至少8个字符
  • 必须限制于,但不特别要求以下任何一项:
    • 大写字母:A-Z
    • 小写字母:a-z
    • 数字:0-9
    • 任何特殊字符:@#$%^& + =
    • At least 8 characters
    • Must be restricted to, though does not specifically require any of:
      • uppercase letters: A-Z
      • lowercase letters: a-z
      • numbers: 0-9
      • any of the special characters: @#$%^&+=

      注意,所有字母/数字/特殊字符都是可选的.我只想验证密码的长度至少为8个字符,并且限制为字母/数字/特殊字符.用户可以根据自己的意愿选择一个更强/更弱的密码. 到目前为止,我所拥有的是:

      Note, all the letter/number/special chars are optional. I only want to verify that the password is at least 8 chars in length and is restricted to a letter/number/special char. It's up to the user to pick a stronger / weaker password if they so choose. So far what I have is:

      import re
      pattern = "^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$"
      password = raw_input("Enter string to test: ")
      result = re.findall(pattern, password)
      if (result):
          print "Valid password"
      else:
          print "Password not valid"
      

      推荐答案

      import re
      password = raw_input("Enter string to test: ")
      if re.match(r'[A-Za-z0-9@#$%^&+=]{8,}', password):
          # match
      else:
          # no match
      

      {8,}的意思是至少8". .match函数要求整个字符串与整个正则表达式匹配,而不仅仅是一部分.

      The {8,} means "at least 8". The .match function requires the entire string to match the entire regex, not just a portion.

      这篇关于如何在Python中测试正则表达式密码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆