Условие такое:
Логин должен начинаться с латинской буквы, может состоять из латинских букв, цифр, точки и минуса и должен заканчиваться латинской буквой или цифрой. Минимальная длина логина – 1 символ. Максимальная – 20
символов.
def logincheck(login):
if login == '' or len(login) > 20:
print 'False'
return
elif len(login) > 2:
if (truth(re.match('[a-zA-Z]', login[0])) + \
truth(re.match('[a-zA-Z0-9]', login[-1])) + \
truth(re.match('^([a-zA-Z0-9\-\.])+$', login[1:-1]))) == 3:
print 'True'
else: print 'False'
return
elif len(login) == 2:
if (truth(re.match('[a-zA-Z]', login[0])) + \
truth(re.match('[a-zA-Z0-9]', login[-1]))) == 2:
print 'True'
else: print 'False'
return
else:
if (truth(re.match('[a-zA-Z]', login[0]))) == 1:
print 'True'
else: print 'False'
Здесь проверка разбита на несколько этапов: для логина > 2 символов, для = 2 символам и для = 1 символу. Можно, конечно, сделать в 1 регулярное выражение, но мои копошения так и не смогли вывести такую регулярку. Если кто покажет - буду очень рад.
Логин должен начинаться с латинской буквы, может состоять из латинских букв, цифр, точки и минуса и должен заканчиваться латинской буквой или цифрой. Минимальная длина логина – 1 символ. Максимальная – 20
символов.
import re
from operator import truth
from operator import truth
def logincheck(login):
if login == '' or len(login) > 20:
print 'False'
return
elif len(login) > 2:
if (truth(re.match('[a-zA-Z]', login[0])) + \
truth(re.match('[a-zA-Z0-9]', login[-1])) + \
truth(re.match('^([a-zA-Z0-9\-\.])+$', login[1:-1]))) == 3:
print 'True'
else: print 'False'
return
elif len(login) == 2:
if (truth(re.match('[a-zA-Z]', login[0])) + \
truth(re.match('[a-zA-Z0-9]', login[-1]))) == 2:
print 'True'
else: print 'False'
return
else:
if (truth(re.match('[a-zA-Z]', login[0]))) == 1:
print 'True'
else: print 'False'
Здесь проверка разбита на несколько этапов: для логина > 2 символов, для = 2 символам и для = 1 символу. Можно, конечно, сделать в 1 регулярное выражение, но мои копошения так и не смогли вывести такую регулярку. Если кто покажет - буду очень рад.
может так ?
ReplyDeleteif (s.length() < 1 || s.length() > 20) return false;
return Pattern.compile("[a-z][a-z0-9.-]*[a-z0-9]", Pattern.CASE_INSENSITIVE)
.matcher(s).matches();