Функция 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
💥Triumph Scrambler 900 — классика с внедорожным характером
✏️ Британский мотоцикл Triumph Scrambler 900 сочетает в себе ретро-стиль и современные технологии, оставаясь верным духу оригинальных «скамблеров» 1960-х.
✔️ Дизайн и атмосфера
С его высоко расположенной выхлопной трубой, внедорожными шинами и минималистичным дизайном Scrambler 900 выглядит так, будто сошел со страниц мотоистории. Однако под капотом — современный 900-кубовый параллельный твин с воздушно-масляным охлаждением, выдающий 64 л.с. и 80 Нм крутящего момента.
✔️ Ездовые характеристики
Двигатель обеспечивает плавную подачу мощности, идеальную для городских поездок и легкого бездорожья. Длинноходная подвеска и легкая рама делают мотоцикл управляемым даже на грунтовых дорогах, а ABS и система traction control добавляют безопасности.
✔️ Для кого этот байк?
Scrambler 900 — отличный выбор для тех, кто ценит классическую эстетику, но не хочет жертвовать надежностью. Это мотоцикл для повседневных поездок, воскресных приключений и тех, кто любит выделяться из толпы.
Хотите почувствовать дух свободы? Triumph Scrambler 900 готов к любым дорогам!
#Triumph#Scrambler#Мотоциклы
💥 Triumph Scrambler 400 Escape: французский взгляд на внедорожный характер
✏️ Французская мастерская FCR Original представила впечатляющий проект переосмысления Triumph Scrambler 400. Результат их работы, получивший название «Escape», — это мотоцикл, который одинаково уверенно чувствует себя как в городских джунглях, так и на грунтовых дорогах.
Вместо того чтобы создавать радикальный кастом под одну задачу, FCR Original предлагает продуманный, сбалансированный пакет доработок. И главное — это не штучная работа, а конфигурируемый набор, который можно адаптировать под личные предпочтения.
Что изменилось?
FCR предлагает два варианта апгрейда — для дорожной версии Scrambler 400 X и для более подготовленной к бездорожью Scrambler 400 XC. При этом двигатель остается нетронутым: 398-кубовый одноцилиндровый мотор сохраняет свою надежную заводскую настройку. Все изменения направлены на ходовую часть, защиту, эргономику и внешний вид.
Вот лишь некоторые детали преображения:
· Защита: Моторный щиток, решетка радиатора, специальная крышка цепи и новые поворотники.
· Подвеска и колеса: Оффроудная резина Continental, которая отлично держит и гравий, и асфальт.
· Выхлоп: Высоко расположенная система с новым глушителем. Это не только эффектно смотрится, но и увеличивает глубину брода при переправах через воду. Звук стал более насыщенным, но без ущерба для комфорта.
· Эргономика: Доработанное сиденье для дальних поездок, багажник и мягкие кофры для многодневных путешествий.
· Стиль: Специальная окраска бака, боковых панелей и обтекателя фары. Доступны варианты: черный, бежевый, ледяной синий и темно-зеленый с топографическими узорами, подчеркивающие «приключенческий» характер мотоцикла.
Гибкий подход
Особенность Escape в том, что это модульная система. Вы можете начать с установки защиты или выхлопа, постепенно расширяя функционал своего мотоцикла. Многие компоненты доступны отдельно в фирменном магазине аксессуаров FCR.
Статус и доступность
Полная версия проекта была впервые представлена широкой публике на выставке Rétromobile 2026 в Париже. Конкретных цен на полный пакет компания не раскрывает — стоимость рассчитывается индивидуально под каждого клиента.
Почему это интересно?
FCR Original удалось сохранить главные козыри Triumph Scrambler 400 — доступность, лицензию A2 и простоту в управлении — но при этом добавить мотоциклу настоящий характер приключенческого эндуро. «Escape» выглядит как готовый заводской спецвыпуск, а не кустарная переделка.
#TriumphScrambler#TriumphScrambler400#FCROriginal#CustomBike#Scrambler#AdventureBuild#MotorcycleNews