首页 > 解决方案 > 如何使用正则表达式删除其密码不遵循密码策略的所有行?

问题描述

密码在“:”之后,密码策略是密码长度必须为 7 到 32 个字符,并且密码必须包含字母、数字和/或特殊字符的组合,不接受仅包含字母或仅数字的密码

意味着如果我们有

username:Password42
Username52@:sssdt3
user:Pass!626795
use:uss

它删除所有,只留下

username:Password42
user:Pass!626795

我尝试使用

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

但它效果不佳,我知道它有什么问题,也许请任何人为我的政策解决它?

标签: regexnotepad++

解决方案


您可以使用此正则表达式删除密码错误的行^.+?:(.{1,6}|.{33,}|[[:alpha:]]+|\d+)$::

  • 太短,
  • 太长,
  • 仅由字母组成,
  • 仅由数字组成。

推荐阅读