正则表达式验证问题

Lefteris Gkinis

我正在使用

^(?=^.{14,30}$)(?=^.[\d]{3}$)(?=^.[a-z]{4}$)(?=^.[A-Z]{5}$)(?=^.[!*&#$%^]{2}).$

正则表达式以验证以下最低要求:

  1. 四个小写字母
  2. 五个大写字母
  3. 三位数
  4. 两个特殊字符
  5. 总长度介于14到30个字符之间

但是不幸的是,这种验证模式无法验证我的字符串。
我一直在寻找regex模式验证,并告诉我该模式还
可以,有人可以为此提供支持吗?

维克多·史翠比维

请注意,这(?=^.[a-z]{4}$)要求匹配一个5个字符的字符串,其中第一个csn是任何字符,然后必须有4个小写字母。最后,在after^和lookaheads中,有.before $,所以实际上,整个正则表达式可以匹配单个char字符串。

您可以使用

^(?=(?:\D*\d){3})(?=(?:[^a-z]*[a-z]){4})(?=(?:[^A-Z]*[A-Z]){5})(?=(?:[^!*&#$%^]*[!*&#$%^]){2}).{8,30}$

请参阅regex演示一个regulex图

在此处输入图片说明

细节

  • ^ -字符串开始
  • (?=(?:\D*\d){3}) -3次出现的任何0+非数字后跟数字
  • (?=(?:[^a-z]*[a-z]){4}) -出现四次任意0+字符,但小写ASCII字母后跟小写ASCII字母
  • (?=(?:[^A-Z]*[A-Z]){5}) -除大写ASCII字母后跟大写ASCII字母以外的任何0+字符出现五次
  • (?=(?:[^!*&#$%^]*[!*&#$%^]){2})-除某些特定的特殊字符(在字符类中定义)外,两次出现任何0+字符,后跟来自分隔!*&#$%^集的一个字符
  • .{8,30} -8至30个字符
  • $ -字符串结尾。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章