Функция 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
➖➖➖➖➖➖
🔘Wow is quite informal, and we use it mostly when speaking. The most common use of wow is as an exclamation to express surprise.
🔜Wow! You’ve shaved your beard off!
🔜You looking amazing in that suit! Wow!
🔘Wow can often be a neutral, but pleasane surprise. Intonation is important to express that it is neutral.
🔜Did you make that cake? For me? Wow!
🔜Did you text me to remind me to set my alarm? Wow! Thanks.
🔘Wow can also be used to show wonder or amazement.
🔜Wow! The Moon is so big tonight.
🔜I love the way the light bounces off of the ocean. Wow!
🔘wow can go at the beginning or at the end of the sentence when used as an exclamation.
🔜Wow! That's such a special gift.
🔜I love your new car. Wow!
🔘Wow can be verb which means to make other people feel admiration or excitement or wonder.
🔜She’s an amazing pianist. She wows audiences every time she plays.
🔜He wowed the room with his amazing presentation about gorillas.
#Wow👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
😄Wow
➖➖➖➖➖➖
🔘Wow is quite informal, and we use it mostly when speaking. The most common use of wow is as an exclamation to express surprise.
🔜Wow! You’ve shaved your beard off!
🔜You looking amazing in that suit! Wow!
🔘Wow can often be a neutral, but pleasane surprise. Intonation is important to express that it is neutral.
🔜Did you make that cake? For me? Wow!
🔜Did you text me to remind me to set my alarm? Wow! Thanks.
🔘Wow can also be used to show wonder or amazement.
🔜Wow! The Moon is so big tonight.
🔜I love the way the light bounces off of the ocean. Wow!
🔘wow can go at the beginning or at the end of the sentence when used as an exclamation.
🔜Wow! That's such a special gift.
🔜I love your new car. Wow!
🔘Wow can be verb which means to make other people feel admiration or excitement or wonder.
🔜She’s an amazing pianist. She wows audiences every time she plays.
🔜He wowed the room with his amazing presentation about gorillas.
#Wow👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
Это был самый большой кулич: вКрыму испекли 600 килограммовый кулич
Насоздания гигантской сладости ушло пять мешков муки, 10 мешков сахара, тысяча яиц и 15 кг изюма.
JDMax#wow
В аэропорту Гонконга появился огромный рыжий кот прямо посреди терминала. Пушистик выглядит очень реалистично: он двигает ушками, хвостом и даже умеет громко мурлыкать. Встретиться с ним можно будет вплоть до 2 мая.
Жаль забрать домой не получитсь🐈
JDMax#wow
Во «Вкусно - и точка» стартовала коллаба с Роскосмосом
В Кидз Комбо можно найти конструкторы со спутниками, ракетами, астронавтами и прочими кубиками Lego.
JDMax#wow
О вкусном: Кофейня в Тайване подает шелковые круассаны
Десерт сервируется в специальном коконе из сахарных нитей. Сначала булочка крепится на специальный вращающийся механизм, а кондитер поливает ее растопленным сахаром.
дубайскому шоколаду был нанесен сокрушительный удар🥊
JDMax#wow
🦇Настоящая пещера Бэтмена найдена в Камбодже — из нее каждый вечер вылетают миллионы летучих мышей.
Животные могут пролететь до 50 км в поисках добычи. Летучие мыши едят насекомых и спасают от них рисовые поля местных жителей.
JDMax#wow
В Японии выпустили калькулятор, который стоит 50 тысяч рублей.
Лимитированную серию офисных гаджетов представила компания Casio. На создание одного S100X Urushi Edition уходит целый месяц — японские мастера вручную покрывают девайс лаком уруси.
Что-то на роскошном.
JDMax#wow
В Китае есть отель с прозрачным полом
Это комплекс Laojunshan Cliff, и он расположен на отвесной скале на высоте 1600 метров. Из каждого номера открывается вид на горы, которые протягиваются вплоть до горизонта. Есть даже комнаты с двумя стеклянными этажами.
Цены очень демократичные — от 17 тысяч рублей за ночь.
Помечтаем в понедельник 🥰
JDMax#wow
В России продают обручальные сушки
Такой милый подарок выпустили в честь 14 февраля: его нужно вручить второй половинке.
Кто успел, тот и съел
JDMax#wow