Gibt es einen präziseren regulären Ausdruck, um diese Aufgabe auszuführen?

Zuerst entschuldige den lahmen Titel, aber ich könnte mir keinen besseren vorstellen. Ich muss ein Passwort testen, um Folgendes sicherzustellen:

Passwords muss mindestens 3 der folgenden Elemente enthalten:

GroßbuchstabeKleinbuchstabe numbersspezielle Charakter

Hier ist, was ich mir ausgedacht habe (es funktioniert, aber ich frage mich, ob es einen besseren Weg gibt, dies zu tun):

    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

Wenn mindestens 3 der Kriterien nicht erfüllt sind, gehe ich damit um. Ich kenne mich mit regulären Ausdrücken nicht gut aus und habe zahlreiche Tutorials im Internet gelesen. Gibt es eine Möglichkeit, alle 4 regulären Ausdrücke zu einer zu kombinieren? Aber ich denke, das würde es mir nicht erlauben, zu überprüfen, ob mindestens drei der Kriterien erfüllt sind.

Gibt es auf einer Seite eine vollständige Liste aller Zeichen, die im regulären Ausdruck maskiert werden müssten (die eine besondere Bedeutung haben, z. B. $, ^ usw.)?

Wie immer, TIA. Ich kann gar nicht genug zum Ausdruck bringen, wie großartig ich diese Seite finde.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage