Регулярные выражения
Это копипаста аналогичного материала прошлых лет; возможно, её надо отредактировать
неплохая методичка, в которой есть практически всё про РВ, о чём говорилось в лекции. Серьёзно, прямо план лекции.
Копия плана (примеры и пояснения см. на сайте):
Что такое регулярные выражения?
- Спецсимволы
- Точка
- Набор символов (диапазон)
- Отрицание набора символов
- Повторения
- Звёздочка
- Плюс
- Знак вопроса
- Фигурные скобки
- Скобочные группы (карманы)
- Альтернация
- Экранирование
- Позиционные маркеры
- Каретка
- Доллар
- Дополнительные диапазоны и позиционные маркеры
- Контекстные проверки
- Предпросмотр, негативный предпросмотр
- Пост-просмотр, негативный пост-просмотр
- Флаги
- Поиск без учета регистра
- Многостроковый поиск
Перевод строки как любой символ
Ленивые повторители: *?, +?, ??, {m, n}?
Сверх плана, 3.11+:
алчные повторители: *+, ++, ?+ и {m,n}+
(?>…) — общая конструкция алчной группировки
Особенности Python
Работа функций match() и search()
Результат — последовательность Match Object-ов
Удобные инструменты: findall() / finditer(); esacpe(), split()
Поиск с заменой
В методичке нет про поиск с заменой sub()
Самоцитаты (back references) — \номер скобочной группы (номер открывающей скобки в целом RE)
Пример: (\w+).*(\1) на текст Matches between zero and unlimited times, as match times
Использование цитат в sub():
sub(r"(\w+).(\w+)", r"\2 — \1 — \1", "---qwerty---")
Ещё почитать
Д/З
- Прочитать и прощёлкать
методичку по regexp-ам
В частности, Match Objects