Форум сайта python.su
-5
Упрощённый пример проверки валидности e-mail. Смысл такой: в логине любая буква, цифра, подчёркивание, точка, тире, а в домене тот же набор, плюс оканчивается 2-4 символьным com, ru и т.д. Но тут уж сам определяй диапазоны А-Яа-яЁё и т.д. А \w = _A-Za-z0-9, к ним можно добавить тоже А-Яа-яЁё
#!/usr/bin/python3 #coding: utf-8 import re pattern = re.compile(r'^[\w.-]+@[\w.-]+\.[A-Za-z]{2,4}$') # мэйл ли? name = 'ww@mail.ru' # Тест без ввода # name = 'wwmail.ru' # Тест без ввода # print(name) var = pattern.search(name) # print(var) # Если не найдено то None, если найдено, то объект if not var: print('Ошибка') if var: print('Успех')
Офлайн
857
AZJIO
и точка в домене была одна.
Alen
Почему точка должна быть одна?!
Вопрос 5
Напишите функцию, которая проверяет введенный пользователем e-mail на соответствие следующим правилам:
1. e-mail состоит из имени и доменной части, эти части разделяются символом "@";
2. доменная часть не короче 3 символов и не длиннее 256, является набором непустых строк, состоящих из символов a-z 0-9_- и разделенных точкой;
3. каждый компонент доменной части не может начинаться или заканчиваться символом "-";
4. имя (до @) не длиннее 128 символов, состоит из символов a-z0-9"._-;
5. в имени не допускаются две точки подряд;
6. если в имени есть двойные кавычки ", то они должны быть парными;
7. в имени могут встречаться символы "!,:", но только между парными двойными кавычками.
Вопрос 6
Напишите юнит-тесты для функции из предыдущего вопроса.
Офлайн
49
py.user.next
Вообще, на Яндексе висит подобное задание.
Офлайн