python Re.search 用于密码符号检查程序(密码验证)
python Re.search for a password symbol check program (password validation)
我正在编写一个程序来检查密码强度。密码必须包含大写字母、小写字母、允许的符号和数字。我已经能够让程序的其余部分工作(使用 re.search(r'[a-z],password 结构)我将问题区域缩短到这几行但无法让这部分工作。我应该使用与 re.search 不同的东西?
import re
symbols = ["!","(",")","£","^"]
password = input("password")
if re.search(r'[symbols]',password):
print("ok")
else:
print("no")
你快到了。只需在正则表达式范围内指定所有符号:
password_valid = bool(re.search(r'[!()£^]', password))
在 [..]
大多数正则表达式元字符 lose their special meaning 中,只需注意第一个位置的 ^
和字符 类,例如 \w
.
如果你注意防止这些情况,你可以在列表中保留符号,并像这样使用它:
symbols = ["!", "(", ")", "£", "^"]
password_valid = bool(re.search(r'[{}]'.format(''.join(symbols)), password))
完整的解决方案可能是这样的
import re
def is_password_valid(password):
return bool(re.search('(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[+\-*\/])(?=.*[!()£^])', password))
或更容易理解
import re
def is_password_valid(pas):
is_ok1 = bool(re.search("[a-z]",pas))
is_ok2 = bool(re.search("[A-Z]",pas))
is_ok3 = bool(re.search("[0-9]",pas))
is_ok4 = bool(re.search("[+\-*\/!()£^]",pas))
return is_ok1 and is_ok2 and is_ok3 and is_ok4
我正在编写一个程序来检查密码强度。密码必须包含大写字母、小写字母、允许的符号和数字。我已经能够让程序的其余部分工作(使用 re.search(r'[a-z],password 结构)我将问题区域缩短到这几行但无法让这部分工作。我应该使用与 re.search 不同的东西?
import re
symbols = ["!","(",")","£","^"]
password = input("password")
if re.search(r'[symbols]',password):
print("ok")
else:
print("no")
你快到了。只需在正则表达式范围内指定所有符号:
password_valid = bool(re.search(r'[!()£^]', password))
在 [..]
大多数正则表达式元字符 lose their special meaning 中,只需注意第一个位置的 ^
和字符 类,例如 \w
.
如果你注意防止这些情况,你可以在列表中保留符号,并像这样使用它:
symbols = ["!", "(", ")", "£", "^"]
password_valid = bool(re.search(r'[{}]'.format(''.join(symbols)), password))
完整的解决方案可能是这样的
import re
def is_password_valid(password):
return bool(re.search('(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[+\-*\/])(?=.*[!()£^])', password))
或更容易理解
import re
def is_password_valid(pas):
is_ok1 = bool(re.search("[a-z]",pas))
is_ok2 = bool(re.search("[A-Z]",pas))
is_ok3 = bool(re.search("[0-9]",pas))
is_ok4 = bool(re.search("[+\-*\/!()£^]",pas))
return is_ok1 and is_ok2 and is_ok3 and is_ok4