План рассказа
- Регулярные выражения:
- Понятие регулярного выражения
Типы регулярных выражений (pcre – надмножество над регулярными выражениями)
Стандартные обозначения: ., ^, $, (, ), +, *, ?, {}, |, \, \1 ... \9
- raw-строки
Способы работы: компиляция -> поиск -> подстановка; re.compile, expr.match / expr.search / expr.split, match.expand, match.group
- Сокращения: re.match, re.sub, re.split, ...
- Вкусности pcre в питоне:
- Сокращения для множеств (тж. локаль, уникод): \b/\B, \d/\D, \s/\S, \w/\W
Настройки регулярных выражений: (?imsux) (i = ignore case, m = multiline ^$, s = multiline ., x = verbose)
- re.VERBOSE: пример
Именованные группы: (?P<name>), (?P=name) (\1 .. \9)
Негруппирующие скобки: (?:)
- re.escape
- Жадные выражения, look-ahead, look-behind, условия (без примеров)
- Работа с русским языком:
- Кодировка исходного текста программы: coding declaration
- str и unicode;
- Локализация программ:
- locale
- gettext:
- repr vs. str vs. unicode
- Понятие протокола в питоне. Примеры:
- Строки: str, repr, unicode
Арифметика // __add__ vs. __radd__ // пример – векторы
Итераторы, контейнеры // пример – деревья
__call__ // пример для декораторов (мемоизация)
__doc__
- Атрибуты:
- getattribute vs. getattr
- setattr, delattr // пример: неизменяемый объект
- descriptor: get, set, del // пример: property