具有至少10位数字,12个大写字母和10个小写字母的正则表达式是什么?
该字符串可以以上述任何形式开头,并且可以随机放置。例如,AB12jgGGfWisLWfoi34R32SgD42DSf3453jfh
。
我曾经用过,(?=.*\\d.*\\d)(?![.\\n])(?=.*[A-Z].*[A-Z])(?=.*[a-z].*[a-z]).*$
这是我至少使用两个大写,两个小写和两个数字的方式。但是\\d
在上面的表达式中添加10个冗余的值似乎不是一个好习惯。
而且,使用\\d{10}
不会像我们期望连续的10位数字那样起作用。
您可以使用此正则表达式:
^(?=(.*?\d){10})(?=(.*?[A-Z]){12})(?=(.*?[a-z]){10})[a-zA-Z0-9]+$
甚至表现更好的正则表达式:
^(?=(?:\D*\d){10})(?=(?:[^A-Z]*[A-Z]){12})(?=(?:[^a-z]*[a-z]){10})[a-zA-Z0-9]+$
这是因为否定模式比懒惰的量词更好.*?
(感谢@nhahtdh)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句