Функция 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
Я нашла ее - идеальную тушь для своего макияжа🙌🏻
Эффект WOW был, девочки
Удлиняет, придает объём и самое главное, дарит тот самый яркий и притягательный взгляд!
Просто посмотрите на мое до и после 🤍
И все благодаря ей Pupa Vamp! Lash Extender, которую хотят все
Заказать можно здесь
Я уверенна эта тушь останется в твоей косметичке надолго!
#vamplashextender#pupamilano#pupalovers
девочки, это восторг!
никогда бы не подумала, что тушь может настолько увеличить мои ресницы, настоящий эффект вау!
тушь Pupa Mascara Vamp! Lash Extender - настоящая находка для тех, кто не хочет делать наращивание, но хотел бы иметь более яркие и густые ресницы
тушь приподнимает их, придает им объем и удлиняет на 90%!
оставляю для вас ссылку, приобрести можно будет в ЗЯ💙
#vamplashextender#pupamilano#pupalovers
найдена тушь с ВАУ-эффектом и феноменальным объёмом!
Pupa Vamp! Lash extender@pupamilanorussia:
• силиконовая щёточка прокрашивает каждую ресничку без склеивания и комочков
• густая формула подкручивает ресницы, удлиняет, даёт объём от корней
• легко наслаивается🤌🏻
• не осыпается и не отпечатывается!
• при этом легко смываемся
ну а какой красивейший футляр💜
однозначно рекомендую!
купить уже можно в Золотом Яблоке
#vamplashextender#pupamilano#pupalovers
Нереальная новая тушь от Pupa - Mascara Vamp! Lash Extender💔
я думаю без слов понятно, почему она мне так понравилась, эффект до/после просто ВАУ 💔
объем, разделение, удлинение и шикарная стойкость в течение дня а ещё супер гибкая щеточка, которая прокрашивает каждую ресничку !
Вы точно должны попробовать, а купить ее можно в РИВ ГОШ
#vamplashextender#pupamilano#pupalovers
Реклама, ООО «КОСМОТРЕЙД», ИНН: 7725628885, erid: 2VtzqvTdBkv
тестирую самую громкую новинку осени от @pupamilanorussia
тушь PUPA vamp! lash extender
• силиконовая щеточка с заостренным кончиком, прокрашивает и приподнимает ресницы от самых корней
• можно наслаивать для wow-эффекта
• насыщенный черный
• не осыпается, смывается без <эффекта панды>
уже доступна в Золотом Яблоке
#vamplashextender#pupamilano#pupalovers
😎 LASH BOSS 😎 ЗДЕСЬ?
Стойте-ка, сейчас появится та самая, которая перевернет мир...
Ах, вот и она! Тушь VAMP! LASH EXTENDER!
🔥 Непревзойденный объем
🔥 Бесконечно длинные ресницы
🔥 Насыщенный черный
Как сильно вы хотите ее попробовать от 1 до 10? А кто уже?
#pupamilano#madeinitaly#vamplashextender#vampmascara
Пришло время обновить ваши ресницы
➡️
➡️
➡️VAMP! LASH EXTENDER
Тушь, которая формирует и приподнимает ваши ресницы в измерении 3D!
Отметьте вашу лучшую подругу, которой она тоже очень нужна!
#pupamilano#madeinitaly#vamplashextender#vampmascara