Функция 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
🐟На днях провели интересные тесты в демозале - нарезали на полуавтоматическом слайсере GSP HD охлажденную рыбу семейства лососевых.
Нам поступил запрос порезать слабосоленую (1% соли) рыбу на суши и роллы🍣
Честно признаемся, мы были сами впечатлены результатами теста!
ЗАДАЧА:
Толщина ломтика - 2-2,5 мм
Выход с куска - не менее 70%
РЕЗУЛЬТАТ:
100% попадание в ТЗ заказчика, красивый рез, стабильная толщина ломтика, рыба не расслаивается. Данное решение для заказчика означает стабильность результата и независимость от человеческого фактора, а значит и большая производительность с того же количества исходного продукта 👌🏼
#gsp#нарезка#слайсер
Давно не показывали на канале нарезку🔪
И сегодня предлагаем оценить результат нарезки рыбки🐟
Толщина нарезки - 2 мм
Автоматический слайсер GSP HD это:
• точная настройка толщины реза с шагом до 0,5 мм
• производительность до 90 резов в минуту
• работа в ручном и автоматическом режиме
• высочайший уровень гигиены
#нарезка#слайсер#bizerba#gsp
😁Unpredictable Stand-Up Attacks: High-Level Setups & Execution For Devastating Punches, Kicks By Georges St. Pierre😁
➡️Unlock the secrets to devastating stand-up striking with Georges St. Pierre, one of the greatest mixed martial artists of all time, in his groundbreaking instructional series, Unpredictable Stand-Up Attacks: High-Level Setups &Execution for Devastating Punches, Kicks.
➡️In this expertly crafted program, GSP—known for his mastery of strategy, timing, and versatility—breaks down the art of unpredictable striking and its application in both striking and MMA.
➡️Whether you’re a beginner looking to build a solid foundation or an advanced fighter aiming to sharpen your skills, GSP’s proven techniques will elevate your striking game to new heights
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#GSP#UFC#Striking#UFC305
💁♀️Buy
💁♀️
😁Mastering Takedowns: All Tricks & Techniques For Unstoppable Takedowns By Georges St. Pierre😁
➡️Unlock the secrets to dominating takedowns with Mastering Takedowns: All Tricks &Techniques for Unstoppable Takedowns by Georges St-Pierre, one of the greatest martial artists of all time.
➡️Whether you’re a beginner looking to build a strong foundation or an advanced athlete refining your techniques, this instructional provides actionable strategies, drills, and tactics used by the best in the business
➡️Georges St-Pierre’s unique approach blends traditional grappling knowledge with modern MMA strategy, giving you the tools to control the fight from the moment the first punch is thrown.
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#GSP#UFC#Takedowns#MMA#UFC305
💁♀️Buy
💁♀️