Регулярные выражения: разбор простых задач

Разбор домашних заданий

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

  1. {i} Прочитать как минимум про метод sub(), нежадные повторители, пред- и постпросмотр (lookahead и lookbehind) в документации по модулю re

  2. {i} Прочитать в Википедии о високосном годе (раздел «Григорианский календарь»)

  3. Неактуально из-за отменённого задания -- FrBrGeorge

  4. Решить пару задач из предыдущего домашнего задания средствами только регулярных выражений с дополнениями (т. е. написать программу, создающую регулярное выражение, которое будет решать задачу простым применением match()):

    1. является ли данная строчка датой в формате dd/mm/yyyy. Начиная с 1600 года до 9999 года
    2. Задача исключена ввиду сложности -- FrBrGeorge

  5. Разбить целочисленное арифметическое выражение на составные части и вычислить его. Для решения этой задачи удобно использовать re.split(), в котором регулярное выражение-разделитель забрано в скобки, тогда результатом будет список вида ["строка_не_разделителей","строка_разделителей","строка_не_разделителей","строка_разделителей"…].

    1. Для операций «+» и «-»
    2. Для операций «+», «-», «*» и «/» с учётом приоритета
    3. Для четырёх операций и скобок
    4. … вывести диагностическое сообщение, если выражение синтаксически неверно
  6. «Шифр». Во введённом тексте заменить буквы так, чтобы слова продолжали читаться, но были непонятными. Например, подставлять вместо каждой гласной другую гласную, звонкую согласную превращать в глухую и т. п. Написать шифратор и дешифратор (если он не совпадает с шифратором). Почитать вслух шифровки :)

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


CategoryClass CategoryVmsh

LecturesVMSH/2012-02-22 (последним исправлял пользователь Ray 2012-03-01 18:04:19)