You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何改进Java密码验证正则以满足无连续重复字符要求?

改进密码验证正则以支持禁止连续重复字符

你的原有正则已经覆盖了前4项密码要求,但缺少第5项「禁止连续重复字符」的校验。只需在原有正则基础上添加一个负向预查规则即可实现完整验证,改进后的正则如下:

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

关键改进点说明:

  • 保留原有4个正向预查规则,确保密码包含数字、小写字母、大写字母和指定特殊字符
  • 新增的(?!.*(.)\1)是核心:
    • (?!...)是负向预查,意思是「后面不能出现指定模式的内容」
    • (.)捕获任意单个字符
    • \1引用刚才捕获到的字符,组合起来就是「连续两个相同字符」
    • .*表示这种连续重复的组合可以出现在密码的任意位置

可选扩展:

如果需要限制密码长度(比如8-16位),可以在正则末尾加上长度限定:

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

内容的提问来源于stack exchange,提问作者Montana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 12:55:58