是否有更简洁的正则表达式来完成此任务?

Mat*_*t M 5 regex vb.net

首先,抱歉蹩脚的头衔,但我想不出更好的一个.我需要测试密码以确保以下内容:

密码必须至少包含以下3项内容:

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

这是我提出的(它有效,但我想知道是否有更好的方法):

    Dim lowerCase As New Regex("[a-z]")
    Dim upperCase As New Regex("[A-Z]")
    Dim numbers As New Regex("\d")
    Dim special As New Regex("[\\\.\+\*\?\^\$\[\]\(\)\|\{\}\/\'\#]")

    Dim count As Int16 = 0

    If Not lowerCase.IsMatch(txtUpdatepass.Text) Then
        count += 1
    End If
    If Not upperCase.IsMatch(txtUpdatepass.Text) Then
        count += 1
    End If
    If Not numbers.IsMatch(txtUpdatepass.Text) Then
        count += 1
    End If
    If Not special.IsMatch(txtUpdatepass.Text) Then
        count += 1
    End If
Run Code Online (Sandbox Code Playgroud)

如果至少有3个标准未得到满足,我会处理它.我不熟悉正则表达式,并且已经在网上阅读了大量的教程.有没有办法将所有4个正则表达式合并为一个?但我想这样做不会让我检查是否满足至少3个标准.

另外,是否有一个网站有一个详尽的列表,列出了需要在正则表达式中转义的所有字符(具有特殊含义的那些 - 例如.$,^等)?

一如既往,TIA.我无法表达我认为这个网站有多棒.

eyk*_*nal 6

你拥有它的方式是尽可能好.你可以在一行中完成这一切,但它会非常混乱,根本不会真正有用.

想想你想要做什么; 你想检查四个不同的标准.由于每个标准基本上都是单一的比较,因此您需要单独检查每个标准,这就是您正在做的事情.