Функция 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
⏺#FLOKI is trying to break up the bullish flag pattern on Daily time frame, after breakout and retest we expect another pump 🚀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
⏺#FLOKI appears to have developed a cup and handle pattern, a technically bullish formation. 🐋
💫A strong confirmation of bullish sentiment would be achieved through a decisive breakout above the designated horizontal resistance. Conversely, a rejection at this level could signal an impending correction.
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
Stake and Earn with FLOKI!
Users can now stake their $FLOKI tokens, and earn $TOKEN, with TokenPocket!
👉https://staking.floki.com
Easy Access: #Floki Staking is now integrated with the TokenPocket wallet, and you can find it on the Trending DApp List on the Ethereum network.
👉 Learn More: https://tokenpocket.pro
We are excited to announce our latest strategic partnership with Floki 🔥
What started as a meme has developed into an industry-leading utility project. Floki's innovative ecosystem offers a 3D NFT Metaverse, DeFi utilities, a crypto education platform, NFTs, a merchandise store, and more.
As part of this partnership, we have purchased $5 million worth of FLOKI tokens from the Floki Treasury. We believe that this partnership will drive the acceleration of Floki adoption in institutional circles and unlock greater growth of this innovative ecosystem.
We're looking forward to your continuous success in this space! 🫡
The future is #Floki! ✨
Find out more here.
Opened a short #FLOKI.
The asset tested $0.000326976, but was unable to go above it, after which market participants actively fixed positions, and pressure from sellers began.
The bears pushed the price and thereby broke through the ascending channel into shorts, with subsequent consolidation under it. Most likely this is not the end of the corrective movement and the coin will show a further decline.
Trading volumes have fallen sharply, which means buyers are looking for more profitable entry points and are not yet ready to take on positions. I assume the price will move to the area of $0.000128717 - $0.000138660.
Goals: $0.000156924 - $0.000148628 - $0.000138660.
Stop: 0.000182642$