Функция 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
Вместе - хоть в космос !
Сегодня у нас митап.
Это всегда особенный день.
Мы очень готовимся и стараемся.
И хочется не просто повторить успех предыдущих встреч, а сделать ещё больше — в содержании, в атмосфере, в настоящем обмене энергией.
В этот раз мы выбрали нашу любимую тему — команды.
Будем вместе размышлять: каким должен быть идеальный лидер сегодня?
И познакомимся с подходом, который считаем особенно актуальным — вдохновляющее лидерство.
Очень рады, что приглашение выступить перед нашим сообществом принял Сергей Кондаков, генеральный директор Tom Tailor.
Настоящий практик и вдохновляющий лидер!
А ещё — в апреле День космонавтики. А где, как не в космосе, самые сплочённые команды?
Поэтому мы получили официальное разрешение от Роскосмоса на выступление действующего космонавта Дмитрия Петелина, а
наш VI Meet Up Фактор Лидера назвали:
“Вместе — хоть в космос! От команды звезд к звездной команде”.
Сегодня вечером мы ждём наших гостей.
Мест уже нет — SOLD OUT!
Если вам интересно принимать участие в наших митапах в будущем — ставьте + в комментариях или пишите в личку.
Будем рады расширять наше пространство доверия и развития.
#MeetUp
Просвирякова: Дневник Развития Бизнеса
В преддверии нашего 7-го #MeetUp в апреле хочется использовать по максимуму каждый день и заполнять свое окружение интересными и коммуникативными людьми 👥
Наверняка вы уже заметили, что моя главная ценность в людях, поэтому я отдаю много внимания своим коллегам, клиентам, качеству нашего общения.
И для вас стараюсь предлагать только проверенные контакты ✔️
В этот раз делюсь с вами полезными каналамина темы маркетинга, финансов, здоровья и психологии и т.д. Все, чем интересуюсь я сама!
Только проверенные авторы и польза здесь https://t.me/addlist/3rl5nspZWRU1YmQy📍