Функция 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
🇷🇺#RASP
Российские активы Evraz Plc с 1 апреля переведены на ПАО "Евраз"
Всего ПАО "Евраз" объединит около 60 юридических лиц, которые сохранят свои названия и продолжат операционную деятельность в качестве его дочерних обществ.
В ноябре прошлого года "Евраз КГОК" получил разрешение на совершение сделки, в результате которой он станет владельцем 93,2% акций угольной ПАО "Распадская"
mt в max
МНЕНИЕ: Мы не ожидаем рекомендации дивидендов Распадской за 2025 г. на фоне операционной убыточности и корпоративных изменений — ИК ВЕЛЕС Капитал #RASP
Читать далее
👉https://smartlab.news/i/180114
мы в max
Распадская отчёт РСБУ за I кв 2026 года:
📉 Выручка ₽4,6 млрд (₽5 млрд за I кв 2025 года), снижение на 8,6%
📉 Чистая прибыль ₽73,6 млн (₽393,5 млн в I кв 2025 года), снижение в 5,3 раза #RASP
Читать далее
👉https://smartlab.news/i/188153
мы в max
Распадская МСФО 2025 год:
📉Выручка ₽116,9 млрд (-26,4% г/г)
📉Убыток ₽53 млрд против убытка ₽11,8 млрд годом ранее
Читать далее
👉https://smartlab.news/i/180120
#RASP
🪨#rasp
Сегодня не добив до верха канала цена акции ушла на коррекцию.
В результате достигнут низ канала, откуда пытаемся отскочить.
☄️При очередном касание низа канала 161.55 буду брать лонг.
✅Тэйк - 168 (середина канала)
🔻Стоп-лосс - 158.5 (под минимум прошлого импульса)
Не иир
🪨#RASP
1/3 позиции зафиксирую.
Прибыль +1,5%✅
Стоп переставлю в безубыток.
Идея здесь: https://t.me/privatka_Kazakova/3255
Хотите больше таких идей? Ставим 100👍, и я готовлю новые идеи
Не иир
🪨#RASP (Распадская)
💥Беру от текущих 216.52 на отскок.
🤔Сегодня наблюдаем пробой вниз сильного уровня поддержки, стопы сняли, шортистов посадили на ложном пробое и вернулись над поддержку (синяя горизонтальная линия).
✅Цель - 230 (ретест снизу синей нисходящей линии)
🔻Стоп лосс на минимум сегодняшней сессии 211.8
Входим?
Да, откупаю - 👍
Нет, сижу на заборе - 🔥
Не иир