Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 0
Регистрация: 11.05.2015
Сообщений: 15

Проверка входной строки

22.01.2019, 07:58. Показов 2527. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Задача: В системе авторизации есть ограничение: логин должен начинаться с латинской буквы, состоять из латинских букв, цифр, точки и минуса, но заканчиваться только латинской буквой или цифрой; минимальная длина логина — один символ, максимальная — 20. Напишите код, проверяющий соответствие входной строки этому правилу.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import re
 
def valid_one(login):
    if re.match('^[a-zA-Z][a-zA-Z0-9\-\.]{0,19}(?<![\-\.])$', login):
        rez = 'valid'
    else:
        rez = 'unvalid'
    return rez
 
while True:
    login = input ("login:")
 
    print ('Valid_one:', valid_one(login))
Если ввести на вход - qwerty..fff , тогда ответ valid, а должен быть unvalid.
Как нужно модифицировать данное регулярное выражение? Никак не могу понять.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2019, 07:58
Ответы с готовыми решениями:

Из входной строки определить 3 наиболее часто встречаемых символа в ней
Добрый день. есть такая задача Из входной строки определить 3 наиболее часто встречаемых символа в ней. Пробелы нужно игнорировать (не...

Сформировать множество, в которое входят только латинские буквы, встретившиеся во входной строке, и множество знаков препинания из входной строки.
помогите пожалуйста очень нужно! Сформировать множество, в которое входят только латинские буквы, встретившиеся во входной строке, ...

Сформировать и вывести три новых строки на основе входной строки символов
Сформировать и вывести три новых строки на основе входной строки символов. В первую строку включить все цифры, во вторую – все знаки...

4
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
22.01.2019, 08:12
afterShock, после fff пробел? Если нет, то он valid.
0
1 / 1 / 0
Регистрация: 11.05.2015
Сообщений: 15
22.01.2019, 08:14  [ТС]
ioprst, в конце строки нет пробела, проблема в том, что указано, что должна проходить только с одной точкой, а проходит с большим количеством точек.
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
22.01.2019, 08:30
Лучший ответ Сообщение было отмечено afterShock как решение

Решение

Можно самому проверить количество точек и минусов
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import re 
 
rex1 = re.compile(r'[A-Za-z]')
rex2 = re.compile(r'^[A-Za-z][A-Za-z0-9\-\.]{0,18}[A-Za-z0-9]$')
 
logs = ['qwerty123', '325sadadz', '324sfd,', 'sdfsdf-.a', 'sdfsdfsdfsdfsdfsdfsdf', 'q', 'qwerty..fff']
 
for log in logs:
    if len(log) == 1:
        print('valid' if re.match(rex1, log) else 'unvalid')
    else:
        if log.count('.') > 1 or log.count('-') > 1:
            print('unvalid')
        else:
            print('valid' if re.match(rex2, log) else 'unvalid')
valid
unvalid
unvalid
valid
unvalid
valid
unvalid
>>> exit()
Обновил
1
1 / 1 / 0
Регистрация: 11.05.2015
Сообщений: 15
22.01.2019, 08:33  [ТС]
спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2019, 08:33
Помогаю со студенческими работами здесь

Сформировать и вывести две новых строки на основе входной строки символов
Сформировать и вывести две новых строки на основе входной строки символов. В первую строку включить все символы, стоящие на четных местах,...

Сформировать и вывести две новых строки на основе входной строки символов
Сформировать и вывести две новых строки на основе входной строки символов. В первую строку включить все символы, стоящие на четных...

Сформировать и вывести две новых строки на основе входной строки символов (Windows Forms)
Сформировать и вывести две новых строки на основе входной строки символов. В первую строку включить все символы, стоящие на четных местах,...

Проверка того что каждый символ во входной строке является цифрой
int a; printf(&quot;Vvedite chislo: &quot;); scanf(&quot;%d&quot;,&amp;a); while(a&gt;10 || a&lt;0) { printf(&quot;\nNepravilnoye chislo!&quot;); printf(&quot;\nVvedite...

Организация входной строки
Входной поток содержит набор целых чисел Ai (0 ≤ Ai ≤ 1018), отделённых друг от друга произвольным количеством пробелов и переводов строк. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru