密码正则表达式验证

时间:2012-05-29 11:22:07

标签: c# regex

这些是要求,但我想这对我的正则表达技巧来说太复杂了......

。 6到10个孤立字符之间 。允许A-Z,a-z,0-9,@,$,_
。必须以字母
开头 。必须至少包含一个数字
。不能包含两个连续的相同字符
。不能包含两个连续相同的数字

我知道正则表达式的基本内容,例如 [A-Za-Z] =仅限字符等...但是当涉及到连续的角色和东西......

4 个答案:

答案 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个组中都找到了字符,则密码很强。