Функция 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
The story of one thing
Если взглянуть на хронику прошедших недавно Недель моды, несложно заметить, что рабочие и охотничьи куртки из канваса с характерной деталью — контрастными воротничками — несмотря на большую популярность в последние годы, всё ещё регулярно встречаются. Предположим, что из моды они выйдут ещё не скоро. Интерес к ним точно не угаснет, пока встречаются оригинальные опции, как у Herill из ассортимента Belief.
Короткая справка для тех, кто с японским брендом не знаком: марка основана в 2019 году выпускниками Колледжа моды Бунка Ююки (Yuyuki Oshima) и Хироюки Осима (Hiroyuki Oshima). Название Herill — синтез heritage («наследие») и will (как модальный глагол, устремлённый в будущее). С модернизацией классического американского стиля дуэт справляется отлично: семейству Осима хватает смелости, чтобы вносить считываемые изменения в знакомые модели, будь то крой, повреждения или мастерское использование пятен краски для декора.
Как раз о таком предмете и пойдёт речь в материале, который для нас подготовил Please. Избранная ими куртка выполнена из полупрозрачной полиэстеровой тафты. Контрастные ворот и лента на обратной стороне манжетов вместе с длинным узким силуэтом не даёт ошибиться: прототипом служит именно охотничий вариант. Чаще всего подобные встречались у бренда Duxbak, названного в честь прочной хлопковой ткани с водоотталкивающей обработкой — с неё влага скатывалась, как со спины утки (ducks back). Российская версия звучала бы так: «как с гуся вода». В некоторых источниках указано, что именно в этой компании изобрели первую специализированную охотничью куртку.
Однако на исполнение прямой функции дизайнерским предметом рассчитывать не стоит: в нём удобнее выслеживать достойных собеседников на выставке, чем дичь в лесу. Легчайшая тафта тактильно приятна, а пуговицы предмета переливаются перламутром. В автомобильных аналогиях классическая куртка — оригинальный армейский Geländewagen, а интерпретация Herill — электрическая версия внедорожника, представленная, как и наша куртка, в 2024-м.
Special offer
Данный материал подтолкнул нас на идею сделать специальное предложение на эту куртку.
Всего на неделю.
Доступно только для подписчиков канала.
Для уточнения всех подробностей напишите нам - @infobeliefmoscow
#herill
BELIEF × HERILL: брюки созданы на основе архивной модели M-43, появившейся в середине XX века.
Изначально разработанные для полевых условий, они сочетали функциональность и простоту, став основой современной утилитарной одежды.
Свободный крой, два объёмных кармана по бокам и плотный канвас — детали, родившиеся из практичности, но со временем ставшие частью эстетики повседневности.
Три цвета: beige, burgundy и olive — представлены в классической обработке и версии с эффектом краски, напоминающим следы работы и времени.
Наследие формы, переосмысленное с точностью и вниманием Herill.
Доступны для заказа в разделе эксклюзив в приложении.
#beliefmoscow
#herill
BELIEF × HERILL: брюки созданы на основе архивной модели M-43, появившейся в середине XX века.
Изначально разработанные для полевых условий, они сочетали функциональность и простоту, став основой современной утилитарной одежды.
Свободный крой, два объёмных кармана по бокам и плотный канвас — детали, родившиеся из практичности, но со временем ставшие частью эстетики повседневности.
Три цвета: beige, burgundy и olive — представлены в классической обработке и версии с эффектом краски, напоминающим следы работы и времени.
Наследие формы, переосмысленное с точностью и вниманием Herill.
Доступны для заказа в разделе эксклюзив в приложении.
#beliefmoscow
#herill
BELIEF × HERILL: брюки созданы на основе архивной модели M-43, появившейся в середине XX века.
Изначально разработанные для полевых условий, они сочетали функциональность и простоту, став основой современной утилитарной одежды.
Свободный крой, два объёмных кармана по бокам и плотный канвас — детали, родившиеся из практичности, но со временем ставшие частью эстетики повседневности.
Три цвета: beige, burgundy и olive — представлены в классической обработке и версии с эффектом краски, напоминающим следы работы и времени.
Наследие формы, переосмысленное с точностью и вниманием Herill.
Доступны для заказа в разделе эксклюзив в приложении.
#beliefmoscow
#herill