密码的正则表达式必须只包含一个大写字符

时间:2018-04-07 21:24:52

标签: regex passwords

我想要一个正则表达式来检查:

密码只包含一个大写字符,至少包含一个特殊字符(#, @, -),密码长度必须至少为8个符号!

(?=.[A-Z]{1}?)(?=.*[#@-])[A-Za-z#@-]{8,}

如何为包含完全一个大写字符的密码编写?

2 个答案:

答案 0 :(得分:1)

试试这个:

^(?=[^A-Z]*[A-Z][^A-Z]*$)(?=.*[#@-])[A-Za-z#@-]{8,}$

演示:https://regex101.com/r/Fr6znT/1

故障:

  • (?=[^A-Z]*[A-Z][^A-Z]*$)在它的位置意味着:“整个表达式应该是'任意数量的非大写字符',后跟'一个大写字符',后跟'任意数量的非大写字符““

答案 1 :(得分:0)

试试这个:

^(?=(?=.*[@#-]{1,})[\S]{8,})([a-z@#-]*[@#-]*[A-Z][a-z@#-]*[@#-]*)$

https://regex101.com/r/v8Erhu/1