密码的正则表达式

时间:2011-07-14 02:39:09

标签: regex password-protection

我需要帮助创建密码正则表达式。 密码必须至少包含4个字符,字母(大写和小写),数字和特殊字符 - 无空格。

msn喜欢正则表达式。

3 个答案:

答案 0 :(得分:0)

此正则表达式有效 - 请参阅下面的测试数据和输出:

^(?=.{4,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.* )(?=.*[@#$%^&+=i.,!?:;*/])

在passwords.txt中测试数据(只有第一个应该通过):

aB#1
aB #1
ab#1
AB#1
aB#a
aB1a
aB1

mac-osx> grep -P '^(?=.{4,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.* )(?=.*[@#$%^&+=i.,!?:;*/])' passwords.txt
aB#1

你可以在最后一个正面表达式的字符类中添加你需要的额外“特殊字符”。

答案 1 :(得分:0)

使用此:

(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[#&*%])^\S*$

如果letter可以是任何Unicode字母,您可以使用此正则表达式:

(?=.*?\p{Ll})(?=.*?\p{Lu})(?=.*?\d)(?=.*?[#&*%])^\S*$

要添加特殊字符,只需将它们放在[]

答案 2 :(得分:-1)

试试

^.*(?=.{4,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$