我一直在尝试为此任务学习正则表达式。我已经使用前瞻性找到了三个条件。
(?=.*[a-z])
(?=.*[A-Z])
(?=.*[0-9])
这种情况下工作正常。当我结合起来我得到
(?=.\*\d)(?=.\*[a-z])(?=.*[A-Z])
对于任何包含数字,a-z和A-Z的字符串,此返回true。但是我只需要包含字母数字的正则表达式。我尝试过此正则表达式
^(?=.\*\d)(?=.\*[a-z])(?=.*[A-Z])$
但这不起作用。谁能帮忙解决此正则表达式为何不适用于该组合的问题。
编辑:
我的疑问是,为什么^
和$
在我合并时在那里不起作用
答案 0 :(得分:1)
正确的正则表达式将是
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]*$
您需要添加实际的文本匹配部分。
前瞻性表示仅用于检查某物是否跟随其他某物,而不使其成为比赛的实际部分。因此,为了使其正常工作,您需要指定正则表达式的实际匹配部分。那部分是[a-zA-Z0-9]*