【问题标题】:Regex in java for password validation [closed]java中用于密码验证的正则表达式[关闭]
【发布时间】:2012-08-02 14:47:32
【问题描述】:

我正在使用正则表达式进行密码验证: 这个正则表达式不是我创建的..

 public final Pattern PASSWORD = Pattern.compile("[(?=.*[a-zA-Z])]"
                + "[(?=.*d)]" + "[(?=.*[^a-zA-Z0-9s])]" + "[.{6s,}]");

我正在尝试为 密码,6个字母,1个数字,1个大写字母

我不知道如何阅读正则表达式... 建议一些学习正则表达式的教程和 模式密码是否满足我的条件.. 如果不是,那么我需要在我的正则表达式中进行哪些更改

【问题讨论】:

标签: java regex validation


【解决方案1】:

我用谷歌搜索的第一件事显示了一个使用正则表达式验证密码的示例:http://www.mkyong.com/regular-expressions/how-to-validate-password-with-regular-expression/

【讨论】:

    【解决方案2】:

    主要问题是您的表达式周围有字符类[...]。这可能会更好:

    "^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9\\s]).{6,}"
    

    我还将d 更改为\\ds 更改为\\s

    这意味着:

    (?=.*[a-zA-Z]) [a-zA-Z] 中至少有一个字符 (?=.*\d) 至少一位数。 (?=.*[^a-zA-Z0-9\s]) 至少有一个字符不在 [a-zA-Z0-9\s] 中 .{6,} 至少 6 个字符。

    【讨论】:

      【解决方案3】:

      试着把它放在一行中:

      ((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,})
      

      我想这会对你有所帮助。

      【讨论】:

        【解决方案4】:

        无论你有什么,它都非常非常奇怪。我不会在这里详细介绍,因为 Pshemo 在评论中指出的教程更适合于此。

        根据您的要求,您可以使用

        ^(?=.*[A-Z])(?=.*\d).{6}$
         ↑          ↑       ↑
         │          │       six characters in total
         │          at least one digit
         at least one upper-case letter
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-10
          • 2023-03-12
          • 2011-04-17
          • 2023-02-03
          • 2018-09-30
          相关资源
          最近更新 更多