Регулярное выражение Python, если совпадают более одного критерия в одной строке регулярного выражения - PullRequest
1 голос
/ 27 марта 2019

В настоящее время я изучаю Python, выполняю некоторые упражнения и имею следующую проблему.Я принимаю пользовательский ввод для пароля, который должен быть длиной не менее 8 символов, иметь заглавную букву, маленькую букву и специальный символ.

Я хотел бы понять, могу ли я объединить все вышеперечисленное в одном регулярном выражениикак ниже, или мне нужно перечислить каждый случай отдельно (см. ниже).

Используя только один:

whole_check = re.compile(r'''(
                            [A-Z]    #Check for capital letter
                             \d       #Check for number
                             \W       #check for special character)''', re.VERBOSE)

Так, как я могу сделать несколько, если совпадение здесь.Например:

if not [A-Z]:
    do something
if not \d:
    do something

Единственный другой вариант, если я определяю каждую категорию в отдельной переменной:

cap_letter = re.compile(r'[A-Z]')
small_letter = re.compile(r'[a-z]')

Спасибо за разъяснение этого для меня.

1 Ответ

0 голосов
/ 27 марта 2019

См. Regex для политики паролей . Обычно ответ таков: да, вы можете поместить это в одно регулярное выражение, но вам следует подумать не делать этого, так как это будет намного легче поддерживать и читать / понимать через неделю, если вы этого не сделаете :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...