0

密码政策:

每个密码应至少包含以下 3 个:

  1. 包含Numbers
  2. 包含a-z
  3. 包含A-Z
  4. 包含special characters !@#$%^&*()_+

例如,这个列表:

12345678
adfghj
AASDFGHJ
!@#$%^&
1234as
1234ASDF
1345!#$%
asdfg!@#$
ASDFGB!#$$
SSRasd
Goodone123
G00done!@#
1@a
Aa1

应该是这样的:

Goodone123
G00done!@#
1@a
Aa1

感谢您的帮助:)

4

2 回答 2

1

让我们看看什么正则表达式可以匹配您的密码:

^                                             # Start of line
 (?:                                          # Start of the alternation group
   (?=.*\d)(?=.*[a-z])(?=.*[A-Z])             # Conditions 1, 2, 3
   |
   (?=.*\d)(?=.*[a-z])(?=.*[!@#$%^&*()_+])    # Conditions 1, 2, 4
   |
   (?=.*\d)(?=.*[A-Z])(?=.*[!@#$%^&*()_+])    # Conditions 1, 3, 4
   | 
   (?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+]) # Conditions 2, 3, 4
   | 
   (?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+]) # Conditions 1, 3, 4
 )
 .*                                           # The line itself is matched
$                                             # Up to the end of line

查看正则表达式演示

要反转它,我们只需将上面的非捕获交替组转换为负前瞻,只需将 替换:!

^                          # Start of line
 (?!                       # A negative lookahead

查看在线演示

要在 Notepad++ 中使用此功能,请选中Match caseoption,并在模式末尾添加\R*以同时删除已删除行之后的换行符。用于 NPP 的一条线路:

^(?!(?=.*\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\d)(?=.*[a-z])(?=.*[!@#$%^&*()_+])|(?=.*\d)(?=.*[A-Z])(?=.*[!@#$%^&*()_+])|(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+])|(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+])).*$\R*

在此处输入图像描述

于 2016-09-03T15:14:24.390 回答
-1

请参阅下面的 npp 正则表达式。注意:确保Match CaseWrap Around被选中并被Regular expression选中

^[^\d\l]+$|^[^\d\u]+$|^[^\d\!\@\#\$\%\^\&\*\(\)\_\+]+$|^[^\l\u]+$|^[^\l\!\@\#\$\%\^\&\*\(\)\_\+]+$|^[^\u\!\@\#\$\%\^\&\*\(\)\_\+]+$

正则表达式匹配两个缺失密码条件的所有可能组合:

  1. 缺少数字和小写字母
  2. 缺少数字和大写字母
  3. 缺少数字和特殊字符
  4. 缺少小写字母和大写字母
  5. 缺少小写字母和特殊字符
  6. 缺少大写字母和特殊字符

更新 Notepad++ 参考如何在 Notepad++ 中使用正则表达式

于 2016-09-03T15:03:13.833 回答