Регулярные выражения

Домашнее задание

  1. {i} Прочитать о регулярных выражениях на ВикиУчебнике и в документации по Python

  2. Составить 10 регулярных выражений (обратите внимание, что по условиям регулярному выражению сопоставляется вся строка, т. е. в Python можно использовать findall('^РВ$') или match('РВ$') (match всегда начинается с начала строки). См. тексты задач на сайте «Открытый Зеленоградский турнир». Большая часть задач — очень просты, см. решение последней задачи:

    1. является ли данная строчка строкой "abcdefghijklmnopqrstuv18340" или нет
      • Пример правильных выражений: abcdefghijklmnopqrstuv18340

      • Пример неправильных выражений: abcdefghijklmnoasdfasdpqrstuv18340

    2. является ли данная строчка GUID с или без скобок. Где GUID это строчка, состоящая из 8, 4, 4, 4, 12 шестнадцатеричных цифр разделенных тире.
      • Пример правильных выражений: {e02fa0e4-01ad-090A-c130-0d05a0008ba0} и e02fd0e4-00fd-090A-ca30-0d00a0038ba0

      • Пример неправильных выражений: 02fa0e4-01ad-090A-c130-0d05a0008ba0} или e02fd0e400fd090Aca300d00a0038ba0

    3. является ли заданная строка правильным MAC-адресом (6 двузначных 16-ричных чисел, разделённых двоеточиями)
      • Пример правильных выражений: 01:32:54:67:89:AB, aE:dC:cA:56:76:54

      • Пример неправильных выражений: 01:33:47:65:89:ab:cd, 01:23:45:67:89:Az

    4. является ли данная строчка валидным URL адресом. решать не надо, в усливиях полная муть -- FrBrGeorge

    5. является ли данная строчка шестнадцатиричным идентификатором цвета в HTML
      • Пример правильных выражений: #FFFFFF, #FF3421, #00ff00

      • Пример неправильных выражений: 232323, f#fddee, #fd2

    6. является ли данная строчка датой в формате dd/mm/yyyy. Начиная с 1600 года до 9999 года

      • Пример правильных выражений: 29/02/2000, 30/04/2003, 01/01/2003

      • Пример неправильных выражений: 29/02/2001, 30-04-2003, 1/1/1899

    7. является ли данная строчка валидным E-mail адресом согласно RFC 2822 (определение адреса — в разделе 3.4.1. Правда же, устроители олимпиады — оптимисты? Давайте хотя бы разберёмся, из каких символов может состоять имя и из каких — домен, и какие бывают ограничения на доменное имя)

      • Пример правильных выражений: mail@mail.ru, valid@megapochta.com, aa@aa.info

      • Пример неправильных выражений: bug@@@com.ru, @val.ru, Just Text2, val@val, val@val.a (строго говоря, два последних примера могут быть правильными, ну да ладно -- FrBrGeorge)

    8. является ли заданная строчка IP адресом, записанным в десятичном виде
      • Пример правильных выражений: 127.0.0.1, 255.255.255.0, 192.168.0.1

      • Пример неправильных выражений: 1300.6.7.8, 1.2.3, 192.168.257.3, 23.34.45.56.78, 1b.24.ef.121

    9. Проверить, надежно ли составлен пароль. Пароль считается надежным, если он состоит из 8 или более символов. Где символом может быть английская буква, цифра и знак подчеркивания. Пароль должен содержать хотя бы одну заглавную букву, одну маленькую букву и одну цифру. {*} придётся применять операцию |

      • Пример правильных выражений: c00l_Pass, SupperPas1, 100_Sobak

      • Пример неправильных выражений: Cool_pass, C00l, c0000lest

    10. является ли заданная строка шестизначным числом, записанным в десятичной системе счисления без нулей в старших разрядах.
      • Пример правильных выражений: 123456, 234567

      • Пример неправильных выражений: 1234567, 12345, 001234

      • r"^[1-9][0-9]{5}$"

Условные обозначения


CategoryClass CategoryVmsh

LecturesVMSH/Python/2016-03-11 (последним исправлял пользователь FrBrGeorge 2016-03-12 20:45:23)