密码分割时,Regex不起作用

时间:2013-07-25 11:26:16

标签: java regex hibernate

我无法获得一个regexp来检查密码是否至少有一个数字可以工作。 这已在各地得到解答,但如果分手,所有答案都会停止工作。 例如,如果我删除了这个Working Password Validation

(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])

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

为了检查单个数字的存在,整个过程停止工作

我是正规表达的新手,这似乎有意义,但它没有,如果可以,请告诉我光。

1 个答案:

答案 0 :(得分:0)

我不确定你的意思整个事情停止工作

(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])

上述所有内容的任务是:

  1. 小写字母必须至少出现一次
  2. 大写字母必须至少出现一次
  3. 任何@#$%^&+=必须至少出现一次
  4. 因此,没有理由将它们取出应该破坏任何东西 - 它们本质上是独立的组件。

    有多种方法可以检查String是否包含数字。您想要检查的方式取决于您的具体要求。所呈现的正则表达式中使用的方法通过积极展望来实现:^(?=.*[0-9])

      

    ^:以
    开始      。*:匹配0个或更多非换行符      [0-9]:是一个匹配数字[0,1,2,...,9]的字符类      ?=是正向前看,在这种情况下,如果存在至少一个数字

    则表示匹配

    希望有所帮助。您可以从Oracle's Tutorial on Regular Expressions开始。在您消化之后,我相信您将能够通过Google找到更多高级资源。