Есть ли более лаконичное регулярное выражение для выполнения этой задачи?

Прежде всего, извините за хромое название, но я не мог придумать лучшего. Мне нужно проверить пароль, чтобы убедиться в следующем:

Пароли должны содержать как минимум 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

Если хотя бы 3 критерия не были выполнены, я справлюсь с этим. Я не очень разбираюсь в регулярных выражениях и читаю многочисленные учебники в Интернете. Есть ли способ объединить все 4 регулярных выражения в одно? Но я полагаю, что это не позволило бы мне проверить, выполнены ли хотя бы 3 критерия.

Кстати, есть ли у сайта исчерпывающий список всех символов, которые необходимо экранировать в регулярном выражении (те, которые имеют особое значение - например, $, ^ и т. Д.)?

Как всегда, TIA. Я не могу выразить достаточно, насколько классным я считаю этот сайт.

Ответы на вопрос(6)

Ваш ответ на вопрос