正则密码的正则表达式

时间:2019-05-07 18:35:54

标签: regex

我一直在尝试为此任务学习正则表达式。我已经使用前瞻性找到了三个条件。

  1. 检查小写字母(?=.*[a-z])
  2. 检查大写字母(?=.*[A-Z])
  3. 检查数字(?=.*[0-9])

这种情况下工作正常。当我结合起来我得到

(?=.\*\d)(?=.\*[a-z])(?=.*[A-Z])

对于任何包含数字,a-z和A-Z的字符串,此返回true。但是我只需要包含字母数字的正则表达式。我尝试过此正则表达式

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

但这不起作用。谁能帮忙解决此正则表达式为何不适用于该组合的问题。

编辑: 我的疑问是,为什么^$在我合并时在那里不起作用

1 个答案:

答案 0 :(得分:1)

正确的正则表达式将是

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]*$

您需要添加实际的文本匹配部分。

前瞻性表示仅用于检查某物是否跟随其他某物,而不使其成为比赛的实际部分。因此,为了使其正常工作,您需要指定正则表达式的实际匹配部分。那部分是[a-zA-Z0-9]*