Найти - Пользователи
Полная версия: как проверить переменную "name" на запрещенные символы?
Начало » Python для новичков » как проверить переменную "name" на запрещенные символы?
1 2 3
AZJIO
Упрощённый пример проверки валидности 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('Успех')
py.user.next
AZJIO
и точка в домене была одна.
Alen
Почему точка должна быть одна?!

Он подсознательно имел в виду подряд.

Вообще, на Яндексе висит подобное задание.
yandex. задание
Вопрос 5	

Напишите функцию, которая проверяет введенный пользователем e-mail на соответствие следующим правилам:

1. e-mail состоит из имени и доменной части, эти части разделяются символом "@";

2. доменная часть не короче 3 символов и не длиннее 256, является набором непустых строк, состоящих из символов a-z 0-9_- и разделенных точкой;

3. каждый компонент доменной части не может начинаться или заканчиваться символом "-";

4. имя (до @) не длиннее 128 символов, состоит из символов a-z0-9"._-;

5. в имени не допускаются две точки подряд;

6. если в имени есть двойные кавычки ", то они должны быть парными;

7. в имени могут встречаться символы "!,:", но только между парными двойными кавычками.

Вопрос 6

Напишите юнит-тесты для функции из предыдущего вопроса.

Сначала нужно составить юнит-тесты, потом под них уже писать функцию. Сделать можно разными способами. Новичку, наверное, будет проще разложить сначала на логин и хост, а потом применять отдельные наборы правил к логину и хосту.
Alen
py.user.next
Вообще, на Яндексе висит подобное задание.

Спасибо что просветили смысл.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB