Функция 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
Opened a short #KAS
The coin formed a double top pattern at $0.19309, which is a reversal formation, which we see on the chart.
The systematic decline led to the breakdown of local, inclined support, as well as the moving MA50 and MA200; sellers are showing strong pressure on the asset, which is likely to continue in the future.
A significant role is played by the high dominance of BTC, which is gradually growing and also contributes to the decline of this asset.
Targets: $0.14394 - $0.13586 - $0.12699
Stop: $0.16820
Были серьезные опасения, что без мамы закончить начальную школу я бы просто не смог. Потому что изобразительное искусство у меня страдало совсем. Черный квадрат я ещё мог исполнить, но при добавлении второго цвета происходила катастрофа. Это было давно и не совсем правда.
Случайно глянул в календарь и невзначай понял, что пять лет назад я нарисовал свою первую (и пока единственную) обложку. Тогда это была иллюстрация совместной песни с KAS.
Сюжет с Эвридикой родился спонтанно ночью. Вдвоем за полтора часа записали трек на московской студии, а потом я уехал в Питер, где красками рисовал полотно, которое позже стало обложкой песни Эвридика. Послушать можно на Яндексе или ВК.
Примерно в то же время я переслушивал альбом "Ennui" от prekrati. Меня зацепило то, как он рассказывал про Пензу. Тогда я сказал себе, что напишу песню про Киров. Понадобилось для этого всего 5 лет. Благодаря Ивану Сюзеву,
мы смогли сделать мой гимн родному городу, соединив слова с музыкой легендарного участника группы ЮГ Андрея КИТа.
Скоро будет релиз "Сорок третьего", а пока можно кликнуть на пресейв.
Самому рисовать обложки теперь не приходится, потому что у меня есть личный дизайнер, который дизайнерит всю нашу жизнь и мне нравится.
#ivk#vnk#kas#кит#рэп#эвридика#промо#сороктретий#сюзевлаб#пресейв#музыка
Вопросик на контроле