我希望正则表达式包含至少一个字母数字字符,至少一个非字母数字字符(特殊字符)和至少一个数字。
提前致谢。
答案 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)
由于这是家庭作业(或许不是?),这里提示一个不使用先行或其他漂亮技巧的解决方案。
字符可以出现多少(以及它们是什么)排列?如何与交替(|
)运算符一起使用?
我会使用多个测试而不是单个正则表达式: - )
快乐的编码。