好吧,必须为密码做正则表达式。
密码应为5 UPPERCASE和3 NUMBERS(可以任意顺序)和总共8(5 + 3)
我试试这个
^(.*?(A-Z){5})(.*\d){3}
但不能以任何顺序工作。
希望你们能帮助我。
答案 0 :(得分:0)
你很接近,试试这个:
^(?=(?:.*[A-Z]){5})(?=(?:.*\d){3})[A-Z0-9]{8}$
答案 1 :(得分:0)
试试这个:
^(?=(.*[A-Z]){5})(?=(.*\d){3}).{8}$
说明:
^
从字符串的开头(?=...)
期待,但不要“前进”(?:.*[A-Z]){5}
仅当字符串包含5个大写字母时才匹配。 (?:
表示“不捕获此组; .*
表示”允许字母之间的字符。“(?=...)
期待,但不要“前进”(?:.*\d){3}
仅当字符串包含3位数时才匹配。 (?:
表示“不捕获此组; .*
表示”允许数字之间的字符。“.{8}
恰好匹配8个字符$
匹配字符串的结尾示例:
答案 2 :(得分:0)
要求这些东西用于密码不是一件好事,因此你不需要那个正则表达式。
如果查看所有可能的8个字符密码,这些密码远远超过所有可能的8char 5upercaseletters 3digits密码。
因此,如果攻击者知道您的要求(可能是文件而不是秘密),他可以比没有这些要求更快地强制输入密码 - 因为他的密码候选人少了。
8个没有限制的字符(数字,上限,下限,额外)=(10 + 26 + 26 + x)^ 8种可能性
计算自己有多少可能的密码。 :d