Regular Expression for Password

纵饮孤独 提交于 2019-12-14 03:37:32

问题


I need help creating a password regex. A password must contain at least 4 characters, letters (uppercase and lowercase), numbers and special characters - no spaces.

msn like regular expression.


回答1:


This regex works - see test data and output below:

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

Test data in passwords.txt (only the first should pass):

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

You can add whatever extra "special characters" you need into the last look ahead regex's character class.




回答2:


Use this:

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

If letter may be any Unicode letter, you can use this regex:

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

To add special characters, simply put them inside []




回答3:


try that

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


来源:https://stackoverflow.com/questions/6687894/regular-expression-for-password

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!