[英]Regex validate string contains letters and numbers regardless of special characters
对于 Python 中的密码验证,我需要制作一个正则表达式,用于验证密码是否同时包含字母和数字。 我有这个正则表达式:
re.match(r"^[A-Za-z]+\d+.*$", password)
但如果密码包含特殊字符,则不会通过。 因此,例如“MyPassword6”的密码可以,但“MyPassword-6”则不行。 如果数字在开头“6MyPassword”上,它也不会通过。
如何使用强制性字母和数字验证正则表达式,而不管它们的顺序如何以及是否存在其他特殊字符?
谢谢!!!
添加[~!@#$%^& ()_-] 没有帮助,我找不到其他解决方案:/
此正则表达式使用两个正向先行断言(?=...)
来确保密码至少包含一个字母和至少一个数字。 每个先行断言中的.*
符号表示密码中可以包含任何字符,包括特殊字符和空格,只要字母和数字也存在即可。
import re
# compile the regular expression
regex = re.compile(r'(?=.*[a-zA-Z])(?=.*[0-9])')
def is_valid_password(password):
# Check if the password is valid
return regex.search(password) is not None
password = "@u2_>mypassw#ord123!*-"
if is_valid_password(password):
print("Valid password")
else:
print("Invalid password")
以下正则表达式模式应该有效
r"^.*[A-Za-z]+.*\d+.*$|^.*\d+.*[A-Za-z]+.*$"
^.*[A-Za-z]+.*\d+.*$
:查找字母在数字之前的密码^.*\d+.*[A-Za-z]+.*$
:查找字母前有数字的密码|
:使用 OR 找到一个序列 OR 另一个.*
:用于在此位置查找 0 个或多个任意类型的字符[A-Za-z]+
:用于在此位置查找 1 个或多个字母\d+
:用于在此位置查找 1 个或多个数字^
和$
:分别是行的开始和结束
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.