我有以下密码正则表达式^((?=[\S]{8})(?:.*)(?=[A-Z]{1})(?:.*)(?=[\p{S}])(?:.*))$
,它捕获以下标准
At least 8 chars long
At least 1 Capital Letter
At least 1 Special Character
但是它不接受以下字符:!@#%&*()_-\/,?
如何调整正则表达式以包含这些字符。以下是代码示例:https://regex101.com/r/hE2dD2/1
再次感谢
答案 0 :(得分:1)
将这些字符添加到检查特殊字符的位置,并进行适当的转义:
((?=[\S]{8})(?:.*)(?=[A-Z]{1})(?:.*)(?=[\p{S}!@#%&*()_\-\\\/,?])(?:.*))$
但是,如果你不能理解正则表达式足以做出这种改变,那么其他人如何维护你的代码呢?将它作为@Michelle评论的单独的简单测试,例如: Python伪代码:
if len(password) < 8:
print "password too short"
elif not re.match('[A-Z]', password):
print "Password must contain a capital letter"
elif ...
这样,你就可以找出它失败的原因并提供更有用的信息。
答案 1 :(得分:0)
答案 2 :(得分:-1)
试试这个:
^((= [\ S] {8})(?:?)(= [AZ] {1})(?:??)(= [\ p { S}] | [^ [A-ZA-Z0-9] +])(?:*))$