这些是要求,但我想这对我的正则表达技巧来说太复杂了......
。 6到10个孤立字符之间
。允许A-Z,a-z,0-9,@,$,_
。必须以字母
开头
。必须至少包含一个数字
。不能包含两个连续的相同字符
。不能包含两个连续相同的数字
我知道正则表达式的基本内容,例如 [A-Za-Z] =仅限字符等...但是当涉及到连续的角色和东西......
答案 0 :(得分:4)
我认为这会对你有帮助.....
密码正则表达式
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})
描述
( # Start of group
(?=.*\d) # must contains one digit from 0-9
(?=.*[a-z]) # must contains one lowercase characters
(?=.*[A-Z]) # must contains one uppercase characters
(?=.*[@#$%]) # must contains one special symbols in the list "@#$%"
. # match anything with previous condition checking
{6,20} # length at least 6 characters and maximum of 20
) # End of group
?= - 表示应用断言条件,本身无意义,始终与其他组合一起使用
整个组合是指,6到20个字符的字符串,至少有一个数字,一个大写字母,一个小写字母和一个特殊符号(“@#$%”)。这种正则表达式模式对于实现强大而复杂的密码非常有用。
答案 1 :(得分:0)
string pattern1 = @"^[a-zA-Z]([a-zA-Z])*"; //start and any number of characters
string pattern2 = @"[0-9]+"; //one number or more numbers
string pattern3 = @"[@#$%]*"; // special symbol allowed
string pattern4 = @"(.)\1";//consecutive characters
string pattern5 = @"^(.){6,10}$"; //min max
答案 2 :(得分:0)
试试这个
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{6,20})
上述正则表达式的描述:
( # Start of group
(?=.*\d) # must contains one digit from 0-9
(?=.*[a-z]) # must contains one lowercase characters
(?=.*[A-Z]) # must contains one uppercase characters
(?=.*[\W]) # must contains at least one special character
. # match anything with previous condition checking
{6,20} # length at least 6 characters and maximum of 20
) # End of group
" / W"将增加可用于密码和坑的字符范围可以更安全。
答案 3 :(得分:0)
如果要验证密码,可以使用group来做soo;
(?<a>[a-zA-Z])?(?<b>[0-9])?(?<c>[@%$#/\\\(\)])?
将在3组(a,b和c)
中的任何一组中给你一个匹配uper和lower字符将在a组中
数字字符将在b组
中和特殊字符将在c组中
你可以使用regex.match.groups(“a”)。count来查看是否可以找到a组中的任何字符
如果您在所有3个组中都找到了字符,则密码很强。