Документ взят из кэша поисковой машины. Адрес оригинального документа : http://uneex.lorien.cs.msu.su/LecturesVMSH/2012-02-29
Дата изменения: Unknown
Дата индексирования: Sat Apr 9 23:51:54 2016
Кодировка: UTF-8
LecturesVMSH/2012-02-29 - UNИX

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

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

  1. {i} Прочитать с чем знакомят на Google-упражнениях по теме ?регулярные выражения в Python?. Правда, у нас не хуже? ;)

  2. {i} Прочитать о модификаторах регулярного выражения в документации. Для решения может понадобиться многострочный режим (re.MULTILINE) и/или режим, при котором '.' может сопоставляться с переводом строки (re.DOTALL)

  3. В некоторой программе на Python у всех идентификаторов, начинающихся с большой буквы (например ABc), окружить эту букву подчеркиваниями (_A_Bc). Полученная программа должна работать как раньше (в том числе и ваша собственная программа)!

    • Не забыть о None, True, False ? при их подмене программа не заработает

    • Не забыть о строках (2 вида обычных и 2 вида многострочных) и комментариях, внутри которых заменять не надо
    • ? вдруг что-то еще не заработает? :)

    • {i} Задача решается активным использованием регулярных выражений, но только при условии, что в комментариях не встречаются строковые конструкции. Почему?

  4. Псевдографика. Вводится таблица шириной в 20 символов, границы которой обозначены символами +, - и |:

    •       +------+-----------+
            |   QQ |   QkrQ    |
            +------+           |
            |      |   IDDQD   |
            +------+-----------+

      Преобразовать ее в таблицу, границы которой заданы псевдографикой: Ђ Ѓ ‚ ѓ „ … † ‡ € ‰ Љ (если эти символы видно, значит у вас установлен правильный шрифт; можно отсюда скопировать в программу):

            ‚ЂЂЂЂЂЂ€ЂЂЂЂЂЂЂЂЂЂЂѓ
            Ѓ   QQ Ѓ   QkrQ    Ѓ
            †ЂЂЂЂЂЂ‡           Ѓ
            Ѓ      Ѓ   IDDQD   Ѓ
            „ЂЂЂЂЂЂ‰ЂЂЂЂЂЂЂЂЂЂЂ…

      Предполагается использовать re.DOTALL и пре/постпросмотр. /!\ Сколько '.' в режиме re.DOTALL занимает перевод строки? Не забывайте перекодировать в unicode.

  5. Упражнение от Google (по наводке Ray). Там надо предварительно скачать и разархивировать файл с несколькими HTML-ями. Обратите внимание, что это не олимпиадная задача: что и как делать, ясно заранее (даже РВ уже написаны), а вот попрограммировать придется.

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


CategoryClass CategoryVmsh

LecturesVMSH/2012-02-29 (последним исправлял пользователь Ray 2012-03-10 16:53:48)