Стандартная библиотека Python включает модуль re, который предоставляет набор инструментов для работы с регулярными выражениями. Среди его мощных возможностей — метод re.sub(), используемый для подстановки строк. Он предлагает высокую степень гибкости, позволяя выполнять сложные операции сопоставления с образцом и замены в строках. Эта статья рассматривает использование re.sub(), предоставляя четкое руководство о том, как использовать его возможности для манипулирования текстом.
Понимание re.sub()
Функция re.sub() предназначена для замены вхождений указанного образца на заменяющую строку. Синтаксис этого метода:
re.sub(pattern, repl, string, count=0, flags=0)
- pattern: регулярное выражение, которое нужно искать.
- repl: строка замены.
- string: строка для поиска.
- count: необязательно. Максимальное количество заменяемых вхождений образца. Значение по умолчанию — 0, что означает замену всех вхождений.
- flags: необязательно. Модификаторы, которые изменяют трактовку образца.
Пошаговое руководство
- Импорт модуля re: убедитесь, что у вас есть доступ к операциям с регулярными выражениями, импортировав модуль re.
- Определение образца: определите образец, который вы хотите найти. Это может быть буквальная строка или более сложный образец, использующий синтаксис регулярных выражений.
- Указание строки замены: определите строку, которая будет заменять каждое вхождение образца.
- Применение re.sub(): используйте re.sub() с определенным образцом, строкой замены и целевой строкой для выполнения замены.
- Просмотр результата: метод возвращает новую строку с выполненными заменами. Важно проверить ее, чтобы убедиться, что она соответствует вашим ожиданиям.
Пример: упрощение текста
Рассмотрим сценарий, когда вам нужно упростить текст, заменив даты в формате «dd-mm-yyyy» на «yyyy», фактически удалив компоненты дня и месяца.
import re
text = «Важные даты включают 12-05-2021 и 23-08-2022.»
pattern = r’\d{2}-\d{2}-(\d{4})’
replacement = r’\1′
simplified_text = re.sub(pattern, replacement, text)
print(simplified_text)
Этот код ищет образцы, соответствующие датам в формате «dd-mm-yyyy», и заменяет их только годом, что приводит к выводу: «Важные даты включают 2021 и 2022.»

- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
- Где и как применять? Потестируем модель после установки на разных задачах
- Как дообучить модель под себя?
Мини-проект: очистка и форматирование файлов журналов
Представьте файл журнала, содержащий временные метки, уровни и сообщения в несколько несогласованном формате. Ваша задача — стандартизировать эти записи с использованием re.sub(). Вот пошаговый подход:
- Цель: Стандартизация записей файла журнала к формату «[YYYY-MM-DD HH:MM:SS] [LEVEL] Сообщение».
- Пример записи журнала: «2021-05-12 08:00:00 — INFO — Успешный вход пользователя».
- Образец регулярного выражения: определите образцы, отклоняющиеся от стандартного формата, такие как различные разделители или неправильно расположенные элементы.
- Стратегия замены: создайте строку замены, которая соответствует желаемому формату, используя группы захвата для необходимого перепозиционирования элементов.
Реализация
import re
log_entries = [
«2021-05-12 08:00:00 — INFO — Успешный вход пользователя»,
«ERROR — 2021-06-01 09:30:22 — Мало места на диске»,
]
pattern = r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) — (INFO|ERROR) — (.*)’
replacement = r'[\1] [\2] \3′
for entry in log_entries:
standardized_entry = re.sub(pattern, replacement, entry)
print(standardized_entry)
Заключение
Метод re.sub() в модуле re Python является мощным инструментом для выполнения подстановки строк с гибкостью регулярных выражений. Благодаря его применению можно эффективно выполнять сложные манипуляции с текстом, от простых замен до более сложных трансформаций текста на основе образцов. Понимание и использование re.sub() позволяет разработчикам с большей легкостью и точностью справляться с широким спектром задач по обработке текста.
- Освой Perplexity и узнай, как пользоваться функционалом остальных ИИ в одном
- УЧАСТВОВАТЬ ЗА 0 РУБ.
- Расскажем, как получить подписку (240$) бесплатно
- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ