Функция 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
Шу пуэр 2023 г. «Сильный духом» марки «Чайная Линия» 357г
#puerh#tea#china#russia#шу#пуэр#натуральный#спелый#чай#чайная#китай#россия#чайнаялиния#чл#puer#сильный#духом#черныйчай#blacktea
https://chaline.ru/catalog/chay/puer_i_chyernyy_chay/chaynaya_liniya/6572/?oid=99057
#chalineчай
#chalineпроисхождение
Прогулка по Гуанчжоу #china#travel#китай#гуанчжоу#guangzhou#tea#чайнаялиния#chinatea#puer#пуэр#шэн#шу#чай#китайскийчай#природа#отдых#путешествия#парк#чл#чайная#командировка
Шу пуэр 2020 г. «В игре» марки «Чайная Линия»
Форма прессовки - Фан ча (квадрат)
Вес - 90гр.
#puerh#tea#china#russia#Ripe#шу#пуэр#натуральный#спелый#чай#чайная#китай#россия#чайнаялиния#бодрость#китайскийчай#ритм#свежесть#тонус#энергия#puer#чл
https://chaline.ru/catalog/chay/puer_i_chyernyy_chay/chaynaya_liniya/6468/?oid=99404
#chalineчай
#chalineпроисхождение
💚Наша команда сейчас находится в Китае🇨🇳 Как всегда, лично выбираем только лучшие, высококачественные и редкие чаи!💚
Следите за новостями, будем оперативно информировать вас! На связи, друзья!🙏👍
#китай#puerh#tea#china#russia#шу#пуэр#чай#travel#китай#азия#россия#чл#чайнаялиния#черныйчай#puer#black#blacktea#шупуэр#путешествия#шэн#шэнпуэр#желтыйчай#белыйчай#красныйчай#чайная#чайнаяцеремония#Юньнань
Древние чайные деревья 🌳 в тумане🌫. Деревня Хуа Чжу Лян Цзы (滑竹梁子) горы Мэнсун
Здесь, на высоте 2005 метров среди густого леса, в борьбе за жизнь, растут старые чайные деревья. Чистейшая экология, полностью дикорастущая среда обитания.
Мы видели всё своими глазами и трогали всё своими руками, и вскоре привезём лучшие пуэры из деревни Хуа Чжу Лян Цзы (шэн пуэр и шу ферментация в корзинах малого объёма от нашего мастера Чжан Дэчунь (кит. 张德春, пиньин zhāng déchūn)).
#хуачжулянцзы#китай #puerh#tea#china#мэнсун#шу#пуэр#чай#travel#китай#азия#россия#чл#чайнаялиния#черныйчай#puer#black#blacktea#шупуэр#путешествия#шэн#шэнпуэр#желтыйчай#белыйчай#красныйчай#чайная#чайнаяцеремония#Юньнань
#chalineчай
#chalineпроисхождение
«Фанцунь» (кит. 芳村, пиньин fāngcūn) — огромный чайный рынок в Гуанчжоу🇨🇳
Чай здесь можно встретить разный... Очень много подделок, особенно под известные чайные бренды и заводы. Много позиций крайне низкого качества. Большинство торговцев занимаются просто перепродажей чая, и не стесняются ставить высокие цены на достаточно сомнительный чай.
Фанцунь - просто очень интересный опыт. Наш стиль другой - мы едем к первоисточнику - к фермерам, чтобы выбрать лучшее из лучших прямо из первых рук.
На связи! 🤝
#фанцунь#китай#puerh#tea#china#russia#шу#пуэр#чай#travel#китай#азия#россия#чл#чайнаялиния#черныйчай#puer#black#blacktea#шупуэр#путешествия#шэн#шэнпуэр#желтыйчай#белыйчай#красныйчай#чайная#чайнаяцеремония#Юньнань
#chalineчай
#chalineпроисхождение
Обзор свежего поступления чая.
Чайная Линия. Интернет-магазин китайского чая
https://chaline.ru/
Весна - это время не только свежего чая, но и новинок в Чайной Линии. О них мы и поговорим в этом видео.
#puerh#tea#china#russia#ripe#шу#шэн#пуэр#puer#весна#натуральный#спелый#чай#чайная#китай#россия#чайнаялиния#ябао#чл#юндэ#юньнань#красный#красныйчай#мэнсуншайхун#бутоны#мэнсун#чайнаягора
#chalineчай
#chalineпроисхождение
Прессовка блинчика "Созерцание" марки "Чайная Линия" из нового сырья, с пуэрных деревьев "чайных гор"
#puerh#tea#china#russia#ripe#шу#пуэр#натуральный#спелый#чай#чайная#китай#россия#чайнаялиния#бодрость#китайскийчай#ритм#свежесть#тонус#энергия#чл#puer#созерцание#мэнсун#мэнхай#чайнаягора#хэкай#ферментациявкорзинах#puer#чаепитие#юньнань#прессовкачая#прессовка
#chalineчай
#chalineпроисхождение