Функция sub в regex может принимать функцию в качестве аргумента repl.
📄 Из документации:
If repl is a function, it is called for every non-overlapping occurrence of pattern. The function takes a single match object argument, and returns the replacement string.
То есть для каждого совпадения будет вызвана функция для вычисления замены вместо замены на одну и ту же строку для всех совпадений.
Иными словами, для замены разных совпадений на разные строки не потребуется запускать re.sub() много раз для каждой строки замены. Достаточно определить функцию, которая вернёт строку для каждого из совпадений.
Описание слишком запутанное🤔, давайте лучше рассмотрим на простом примере:
Создаем карту замены. То есть какие строки на какие требуется менять.
remap = {
'раз': '1',
'два': '2',
'три': '3',
'четыре': '4',
'пять': '5',
}
Пишем функцию поиска строки для замены. Единственным аргументом будет объект re.Match.
Используя данные этого объекта мы вычисляем замену on-the-fly!
def get_str(match: re.Match):
word = match.group(1)
return remap.get(word.lower()) or word
Пример текста.
text = '''Раз Два Три Четыре Пять
Вместе будем мы считать
Пять Четыре Три Два Раз
Мы считать научим вас
'''
Теперь запускаем re.sub и вместо строки замены (repl) подаём имя функции.
(Данный паттерн ищет отдельные слова в тексте)
>>> print(re.sub(r'(\w+)', get_str, text))
1 2 3 4 5
Вместе будем мы считать
5 4 3 2 1
Мы считать научим вас
Думаю, достаточно наглядно 🤓
#libs#regex
27.03.26 Покровское - Андреевка - Даниловка
Позиционные боевые действия в Днепропетровской зоне безопасности.
Позиции ВС РФ в жилой застройке Андреевки и Даниловки обстреляна с дрона ВСУ. Уточнение зоны контроля ВС РФ в Днепропетровской области.
14:00 47.889146, 36.197578
10:30 47.876300, 36.232817
Источник 21+
Геопривязка
#ru#add
26.03.26 Степногорск - Речное
Активные боевые действия в районе Каменского.
Боевая работа подразделений ВС РФ в населённом пункте Речное и его окрестностях. ВС РФ удерживают под уверенным контролем занятые рубежи по южному берегу реки Конка в районе бывшего Каховского водохранилища.
0:00 47.657223,35.321983
2:50 47.672961,35.319197
Источник https://t.me/Bender_Group1/218
Геопривязка
#ru#add
17.04.26 Купянск - Юбилейный
Позиционные боевые действия в Купянске.
Позиция ВС РФ частом секторе рядом с Юбилейным обстреляна ВСУ.
Боевые действия в 3 км от зоны уверенного контроля ВС РФ. События предположительно март 2026.
49.699130, 37.594947
Источник 21+
Геопривязка
#ru#add
04.02.26 Константиновка - 2-й микрорайон - Центральный - Цинковый
Штурм Константиновки.
Серия авиабомбовых ударов ВКС РФ по позициям ВСУ в районах многоэтажной застройки. Применение авиационных боеприпасов с модулем планирования и коррекции.
Удаление от зоны активных боевых действий от 2 км.
Источник https://t.me/rusich13sho/1405
Геопривязка
#ua#add
@creamy_caprice
Подписаться на канал
@Bahmut_Klehseevka
Чат канала
26.01.26 Константиновка - Новосёловка
Штурм Константиновки.
Успешное поражение после обстрела FPV-дронами ВС РФ бронемашины ВСУ на западе Константиновки.
Удаление от зоны активных боевых действий до 7 км.
Источник https://t.me/yuzhny_front_ZOV/22177
Геопривязка
Геопривязка
#ua#add
@creamy_caprice
Подписаться на канал
@Bahmut_Klehseevka
Чат канала
19.01.26 Константиновка - Центральный
Штурм Константиновки.
После обстрела FPV-дронами ВС РФ бронемашину ВСУ разорвало на части в районе многоэтажной застройки Центральный.
Удаление от мест активных боевых действий около 3 км.
Источник https://t.me/z4lpr/1444
#ua#add
📱@creamy_caprice
21.03.26 Купянск - Юбилейный
Активные боевые действия в Купянске.
Заявлено как движение военнослужащих ВС РФ на западной окраине города. Событие на удаление 3 км от зоны активных боевых действий.
49.69662, 37.59368
Источник https://t.me/operationall_space/10401
Геопривязка
Геопривязка
#ru#add
18.04.26 Гуляйполе - Староукраинка
Активные боевые действия в районе Гуляйполя.
Атака ВСУ механизированной группой в направлении Строукраинки. ВС РФ сожгли оставленный бронеавтомобиль ВСУ около населённого пункта. Боевые действия на разграничении зон контроля.
47.67792, 36.14316
Источник https://t.me/voin_dv/19292
#ua#add
@tlgrmcbot
Qué puede hacer este bot?
Este es el bot oficial de telegramic.org! La gente a menudo me usa para iniciar sesión en el sitio web de Telegramic. Pero puedo hacer más! Si no puede encontrar un contenido de Telegram en Telegramic, ¡puede agregarlo!
Idioma: Inglés
(visto en @BotsGram_cu)
#channels, #search, #index, #bestof, #rating, #reviews, #share, #inline, #explore, #discover, #add, #telegramic, #telegram