@markovnik333

Как написать проверку данных пользователя?

Только начал учить регулярки. Надо написать программу для проверки данных пользователя в формате Имя Фамилия дд.мм.гг. Что я делаю не так? Вот код:
from re import *
pattern = \
compile('[a-z]+\s+[a-z]+\s+([0-9]{2}\.+[0-9]{2}\.+[0-9]{4})')
def get_data():
    data = input('Your Data: ')
    is_valid = pattern.match(data)
    if is_valid:
        print('Valid')
    else:
        print('Invalid!')
get_data()
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev
build engineer
Имя Фамилия дд.мм.гг

'[a-z]+\s+[a-z]+\s+([0-9]{2}\.+[0-9]{2}\.+[0-9]{4})'

Для начала, у вас в списке только английские маленькие буквы, а по вашему определению, в имении фамилии должны быть заглавные.
Поэтому [a-z] надо менять на [A-ZА-Я][a-zа-я]+
Дальше не смотрел. Воспользуйтесь онлайн построителями типа https://regex101.com/, чтобы протестировать регулярку, а потом уже помещайте ее в код.
Ответ написан
@d-sem
Пагубный путь делить имя и фамилию регулярками и считать что это два слова.

Да, редкие кейсы, но уже на тысячах встречаются двойные фамилии. А есть еще четверные имена. Люди без фамилий и отчетств. И это только славянские имена. С тюрками, арабами и азиатами начинаются отдельные пляски.

Считайте ФИО до даты одним словом, где возможны пробелы, дефисы и даже цифры.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы