Python Проверка имен пользователей с помощью регулярных выражений - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть задача, с которой мне нужна помощь. Задача состоит в том, чтобы создать скрипт Python, который просит пользователя ввести желаемое имя пользователя. Имя пользователя должно быть следующим: «a11aaaaa». Итак, начиная с буквы, 2х цифр, 5х букв. Это правило для того, как должно выглядеть имя пользователя, и если данный ввод не совпадает с этим, пользователь сможет повторить попытку, пока не получит правильное значение. Благодарю за любую помощь!

Ответы [ 4 ]

0 голосов
/ 12 апреля 2019

Как я недавно узнал от другого пользователя на SO, \w включает \d.Следовательно, '^\w\d{2}\w{5}$', как предлагают некоторые пользователи здесь, будет соответствовать, например, 12345678.

. Чтобы это исправить, просто укажите класс символов явно:

import re

regex = re.compile('^[A-Za-z]\d{2}[A-Za-z]{5}$')

while True:
    password = input('Please enter a password: ')
    if regex.search(password):
        print('Yay! Your password is valid!')
        break

    else:
        print("Oh no, that's not right. You need a letter, then two numbers, then five letters. ", end='')
0 голосов
/ 12 апреля 2019

Вы можете сделать что-то подобное:

import re

while True:
    name = input('Enter your name')
    if re.match('^\w\d{2}\w{5}$', name):
        break
0 голосов
/ 12 апреля 2019

Попробуйте это:

import re

uname = input("Enter your username: ")
regex = re.compile(r"^[A-Za-z]{1}\d{2}[A-Za-z]{5}$")
if regex.findall(uname):
    print ("Valid username")
else:
    print ("Invalid username")
0 голосов
/ 12 апреля 2019
^\w{2}\d{2}\w{5}$   

Вы можете использовать этот удобный сайт для экспериментов с регулярным выражением: https://regex101.com/

...