Найти - Пользователи
Полная версия: Регулярное выражение для проверки имени
Начало » Python для экспертов » Регулярное выражение для проверки имени
1
andreiru
Здравствуйте!

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

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

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

^[a-z\d]{1}[a-z\d]+[a-z\d]{1}$
py.user.next
>>> 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
>>>
andreiru
py.user.next, спасибо большое !
Shaman
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
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