用于密码验证的正则表达式,对于正确的密码返回false

本文关键字:密码 返回 于正确 false 正则表达式 验证 用于 | 更新日期: 2023-09-27 18:04:11

我尝试编写一个正则表达式来验证密码,但是对于有效的密码它返回false。

密码必须至少包含以下3个字符:

    数字
  • 大写字母
  • 小写字母
  • 特殊字符

密码长度没有限制。

这是我的尝试:

@"^(?=(.*'d){3})(?=(.*[a-z]){3})(?=(.*[A-Z]){3})(?=(.*[^a-zA-Z'd]){3})$"

另外,我完全知道如何在不使用正则表达式的情况下做到这一点。然而,这是一个大学的任务,我们已经被告知我们必须使用它们。

用于密码验证的正则表达式,对于正确的密码返回false

我认为你唯一的问题是你没有匹配任何字符。

@"^(?=(.*'d){3})(?=(.*[a-z]){3})(?=(.*[A-Z]){3})(?=(.*[^a-zA-Z'd]){3})$"

只包含了你的头表,这保证了你的条件。这意味着基本上你需要条件,另一方面,真正的模式只有^$匹配空字符串。这个正则表达式永远不会返回true。

只需在末尾添加.*以实际匹配字符。

@"^(?=(.*'d){3})(?=(.*[a-z]){3})(?=(.*[A-Z]){3})(?=(.*[^a-zA-Z'd]){3}).*$"