2

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

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

我知道正则表达式的基本知识,例如 [A-Za-Z] = characters only 等......但是当涉及到连续字符和东西时......

4

3 回答 3

1

尝试这个

((?=.*\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”会增加可用于密码的字符范围,坑可以更安全。

于 2013-08-12T07:11:50.763 回答
0

如果您想验证密码,您可以使用组来验证密码;

(?<a>[a-zA-Z])?(?<b>[0-9])?(?<c>[@%$#/\\\(\)])?

将为您提供 3 个组中的任何一个(a、b 和 c)的匹配项

大写字符和小写字符将在 a 组中

数字字符将在 b 组中

特殊字符将在 c 组中

您可以使用 regex.match.groups("a").count 来查看是否可以找到来自组 a 的任何字符

如果您在所有 3 个组中都找到字符,则密码是强密码。

于 2013-08-18T12:45:18.210 回答
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
于 2012-05-31T14:27:35.810 回答