Есть ли более лаконичное регулярное выражение для выполнения этой задачи?
Прежде всего, извините за хромое название, но я не мог придумать лучшего. Мне нужно проверить пароль, чтобы убедиться в следующем:
Пароли должны содержать как минимум 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. Я не могу выразить достаточно, насколько классным я считаю этот сайт.