Проверка введенных символов python
Всем доброго дня. Подскажите пожалуйста, как можно проверить введенные символы в input ? Нужно что бы соответствовали требованиям, к примеру первая буква была бы заглавной, в слове были спец.символы такие как #$%_)( и цифры и что бы последняя буква тоже была с условием либо цифрой.
Ответы (2 шт):
Автор решения: nomnoms12
→ Ссылка
Можете воспользоваться регулярными выражениями.
[A-Z][A-Za-z0-9#$%_)(]+[A-Z0-9#$%_)(]:
- Первый символ — заглавная буква
- В середине строки могут быть заглавные и строчные буквы, цифры и символы
#$%_)( - Последний символ — заглавная буква или
#$%_)(
Пример:
import re
if re.fullmatch(r'[A-Z][A-Za-z0-9#$%_)(]+[A-Z0-9#$%_)(]', input()):
print('Соответствует требованиям')
Автор решения: nomnoms12
→ Ссылка
По запросам из комментариев.
Можно вручную проверять наличие определённых символов с помощью срезов.
s[0] — первый символ.
s[1:-1] — середина строки.
s[-1] — последний символ.
import string
s = 'Str()nG'
# Количество символов от 15 до 25
flag_len = False
if 14 < len(s) < 26:
flag_len = True
# Первый символ — заглавная буква
flag_start = False
if s[0] in string.ascii_uppercase:
flag_start = True
# В середине строки могут быть заглавные и строчные буквы, цифры и символы #$%_)(
flag_mid = True
for x in s[1:-1]:
if x not in string.ascii_letters + string.digits + '#$%_)(':
flag_mid = False
break
# Последний символ — заглавная буква или #$%_)(
flag_end = False
if s[-1] in string.ascii_uppercase + '#$%_)(':
flag_end = True
if flag_len and flag_start and flag_mid and flag_end:
print('Соответствует требованиям')