Функция 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
«Все мужчины одинаковые»: что такое гетеропессимизм
Вы наверняка замечали тренд последних лет — растущую популярность высказываний о «проблемах гетеросексуальности». От мемов «гетеросексуальность — это тюрьма» до движения #boysober в TikTok, где женщины объявляют о «трезвости от мужчин», фокусируясь на саморазвитии. Это явление получило название «гетеропессимизм» — перформативное выражение разочарования в гетеросексуальных отношениях без реального отказа от них
Женщины публично жалуются на отношения с мужчинами, описывая их как безнадежные, но при этом продолжают их поддерживать. Мужчины тоже участвуют в этом дискурсе, создавая свои версии гетеропессимизма, иногда доходящие до крайностей вроде движения MGTOW (Men Going Their Own Way), где провозглашается полный отказ от отношений с женщинами
Однако за шутками и мемами скрывается проблема. Гетеропессимизм часто выглядит как прогрессивная позиция, но на деле может служить просто способом избежать ответственности. Объявляя гетеросексуальность «безнадежной», мы отказываемся от возможности её изменить, превращая структурную проблему в индивидуальную жалобу. Вместо коллективных действий по трансформации гетеросексуальной культуры мы получаем анестезию — временное облегчение от дискомфорта без реального решения
Тем временем до выхода нового выпуска про любовь остался один день, а пока — можете посмотреть наш ролик про дейтинги и как они развязали войну полов 💙
а что вы думали, админка без итогов года обойдется? не обойдется
че получилось
— мне было очень сложно на работе — на грани выгорания в ноль — но я наконец-то освоилась, выдохнула и успокоилась
— текст про феномен «Типичной анорексички» — мой магнум опус, лучше я уже не напишу, только если не нашумевший рейтинг киножурналов
— полноценно камбекнулась с видосами в тиктоке и инсте — преодолеть перфекционизм и тревогу было непросто, но я рада, что поставила это на рельсы. кандибобер кст 10 лямов набрал
— тележку тоже стала регулярно вести, и вас тут теперь больше в 3 раза. прикиньте?
— ну и конечно, биггест флекс — видеоподкаст на Кинопоиске. из всей оравы талантливых интернет-ребят взяли именно меня, и это ахуй
😱
— переехала
что не получилось
— не занялась здоровьем (игнорирую врачей как явление)
— спортом тоже не занялась: 2 (два) раза летом покаталась на велике, неделю поделала с утра зарядку, да и все на этом. жопа выросла на +5 кг, че с этим делать, я пока не ебу
— так и не вернулась в терапию, хотя мне прям очень жестко пора))))))
— очень много идей для ебких текстов / видосов так и осталось нереализованными по причине пунктом выше
— толстую кожу тоже пока не отрастила: все гадости в интернете про себя читаю по сто раз и по сто раз о них потом думаю и расстраиваюсь. еще люди в интернете тупые и злые — это тоже расстраивает.
поинты, к которым я не знаю, как относиться
— романтические отношения сильно подупали в рейтинге приоритетов: мне чет страшно все надоели, дейтинги кринж, ну я и забила и стала заниматься своими делами. никто не умер + отпало желание от тоски бросаться на всякую падаль. #femcel#boysober#winterarc🙏🏻😟🥀
— вкатилась в кризис четверти жизни
— пока не могу до конца сформулировать, кто я, про что я и какие смыслы хочу нести общественности, но тут тоже пока забила. план фигачить, че нравится, до тех пор, пока не разонравится
спасибо, что читаете, ставите классы, комментируете и не срете почем зря 💘 жестко довольна, какая у меня думающая 😬 аудитория тут собирается, вот бы весь интернет такой был….
с наступающим всех!!!!