用于连续重复字母、数字和特殊字符的 Java 正则表达式

我必须应用密码策略,并且我正在使用这个正则表达式(默认为我的身份服务器),它接受密码作为小写、大写、数字和特殊字符的组合:

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

我需要修改它,使其不应该匹配具有超过 3 个相同字符的连续副本的字符串,例如Adminnnn@123.


繁星淼淼
浏览 454回答 1
1回答

呼啦一阵风

这很棘手,但我认为这应该可行(在这里现场尝试):^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*])(?!.*(.)\1\1\1)[0-9a-zA-Z!@#$%&*]{0,100}$我使用了 4 个前瞻断言和一个否定前瞻断言。(?=.*[0-9])         must contain a number (?=.*[a-z])         must contain a lower case(?=.*[A-Z])         must contain an upper case(?=.*[!@#$%&*])     must contain a special character(?!.*(.)\1\1\1)     must not repeat the character in group 1 more than 3 times[0-9a-zA-Z!@#$%&*]  is composed of these characters{0,100}             0 to 100 symbols allowed
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java