这个“密码”的正则表达式是什么?

时间:2011-05-19 03:27:47

标签: c# regex

我希望正则表达式包含至少一个字母数字字符,至少一个非字母数字字符(特殊字符)和至少一个数字。

提前致谢。

4 个答案:

答案 0 :(得分:3)

正确回答我的问题:

正则表达式:

^((= [\ d])(= [AZ])(= [AZ])|????(= [ AZ])(= [AZ])(= [^ \ W \ d \ S])|????(= [\ d])(= < / EM> [AZ])(= [^ \ W \ d \ S])|???(= [\ d])(= [AZ])( ?= [^ \ W \ d \ S]))。{8,30} $

感谢。

答案 1 :(得分:2)

所以,换句话说,至少有一个alpha,一个数字和一个非alphanum ......

你需要两个前瞻:

(?=.*[a-zA-Z])(?=.*[0-9]).*[^a-zA-Z0-9]

由于这被标记为家庭作业,我建议你实际上也理解它:

http://www.regular-expressions.info/lookaround.html


如果你不想要空格:

(?=.*[a-zA-Z])(?=.*[0-9]).*(?=\S)[^a-zA-Z0-9]

答案 2 :(得分:0)

选择其中任何一个都很容易,但是以任何顺序排列所有这三个都是有意义的。您可以尝试三个中的一个中的一个角色,然后使用前瞻的剩余部分,但您仍然需要在该角色后面进行检查。

答案 3 :(得分:0)

由于这是家庭作业(或许不是?),这里提示一个不使用先行或其他漂亮技巧的解决方案。

字符可以出现多少(以及它们是什么)排列?如何与交替(|)运算符一起使用?


我会使用多个测试而不是单个正则表达式: - )

快乐的编码。