Уведомления

Группа в Telegram: @pythonsu

#1 Июль 18, 2013 09:40:06

andreiru
От:
Зарегистрирован: 2010-11-06
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярное выражение для проверки имени

Здравствуйте!

Помогите с регулярным выражением, при регистрации пользователя нужно проверить его имя !

В имени могут быть только (a-z), (0-9), _ (нижний пробел не должен быть в начале или конце имени)

Я не особо силен в регулярных, да и сталкиваюсь с ними редко !



Отредактировано andreiru (Июль 18, 2013 09:40:56)

Офлайн

#2 Июль 18, 2013 11:52:35

mironich
От:
Зарегистрирован: 2011-05-23
Сообщения: 118
Репутация: +  2  -
Профиль   Отправить e-mail  

Регулярное выражение для проверки имени

andreiru
Здравствуйте!Помогите с регулярным выражением, при регистрации пользователя нужно проверить его имя !В имени могут быть только (a-z), (0-9), _ (нижний пробел не должен быть в начале или конце имени)Я не особо силен в регулярных, да и сталкиваюсь с ними редко !

^[a-z\d]{1}[a-z\d]+[a-z\d]{1}$



Офлайн

#3 Июль 19, 2013 10:23:04

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9885
Репутация: +  853  -
Профиль   Отправить e-mail  

Регулярное выражение для проверки имени

>>> import re
>>> 
>>> def test_name(name):
...     return name != '' and '_' not in (name[0], name[-1]) and \
...            re.search(r'^[a-z\d_]+$', name) is not None
... 
>>> test_name('')
False
>>> test_name('_')
False
>>> test_name('_a')
False
>>> test_name('a_')
False
>>> test_name('a_a')
True
>>>


>>> import string
>>> 
>>> validset = set(string.ascii_lowercase + string.digits + '_')
>>> 
>>> def test_name(name):
...     return name != '' and '_' not in (name[0], name[-1]) and \
...            not set(name) - validset
... 
>>> test_name('')
False
>>> test_name('_')
False
>>> test_name('_a')
False
>>> test_name('a_')
False
>>> test_name('a_a')
True
>>>



Отредактировано py.user.next (Июль 19, 2013 13:13:28)

Офлайн

#4 Июль 20, 2013 10:47:52

andreiru
От:
Зарегистрирован: 2010-11-06
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярное выражение для проверки имени

py.user.next, спасибо большое !



Отредактировано andreiru (Июль 20, 2013 10:48:00)

Офлайн

#5 Июль 21, 2013 06:50:24

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Регулярное выражение для проверки имени

import re
def test_name(name):
    return re.match(r'([a-z\d][a-z\d_]*[a-z\d]$)|([a-z\d]$)', name) is not None

Отредактировано Shaman (Июль 21, 2013 06:57:54)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version