expresiones regulares de Python para la validación de contraseña

Tengo el siguiente requisito para validar la contraseña con el siguiente contexto

  • al menos un dígito
  • al menos una letra mayuscula
  • al menos una letra minúscula
  • al menos un personaje especial [$ @ #]

El siguiente progtwig hace la coincidencia parcial pero no la expresión regular completa

#!/usr/sfw/bin/python import re password = raw_input("Enter string to test: ") if re.match(r'[A-Za-z0-9@#$]{6,12}', password): print "match" else: print "Not Match" 

En uso:

 localhost@user1$ ./pass.py Enter string to test: abcdabcd match 

Se está evaluando la salida incorrecta. ¿Alguien puede sugerir aquí que debería usar re.search ?

Aquí está el Regex para al menos un dígito, una letra mayúscula, al menos una letra minúscula, al menos un carácter especial

 import re password = input("Enter string to test: ") # Add any special characters as your wish I used only #@$ if re.match(r"^(?=.*[\d])(?=.*[AZ])(?=.*[az])(?=.*[@#$])[\w\d@#$]{6,12}$", password): print ("match") else: print ("Not Match") 

Espero que esto te ayudará…