Функция 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
🤝$300 Spread the Word Contest — Create Content & Get Rewarded!
In anticipation of the start of Squad Games Season 2, the #Electra team is launching a creative competition for the community with a prize pool of $300 USDT!
You create content and get a chance to win a prize!
💸
✔️How to participate?
🟢 Make a post/video/image about Squad Games Season 2
🟢 Post it on one of the platforms with the hashtag #electra:
🌐Twitter (X)
🌐TikTok
🌎Instagram Reels
📺YouTube Shorts
🟢 Leave a link to your content in the comments below ➡️the original post by Electra
💵Awards:
300 USDT will be distributed among 5 authors of the most viral and creative works. Each winner will receive 60 USDT.
🗓Deadlines: up to and including May 26, hurry up!
🤑Electra is once again encouraging creativity and community — if you've been wanting to prove yourself, this is the perfect chance.
#Electra#SquadGames#Contest
🤝Squad Games Season 2 by Electra – MORE REWARDS, MORE ACTION!
After a successful first season, #Electra launches Squad Games Season 2 — this time with even higher stakes: more prizes, more bonuses, more winners, and more opportunities for active traders!
📅 Tournament Start: May 26
🕓 Duration: 2 weeks
💵Squad Rewards:
💲 Up to $100,000 USDT
🎁 Up to $100,000 in bonus vouchers
⚡️5,000,000 airdrop points
*Rewards will be distributed among the top 20 traders by volume in each of the top-6 squads.
💵Individual Rewards:
💲 $5,000 USDT will be shared among the top-20 traders with the highest PnL (in USDT) throughout the tournament.
💵 Daily Bonuses — $50 each*:
✅Best PnL of the day
✅Worst PnL of the day
✅Highest daily trading volume
*Rewards are issued as Electra bonus vouchers and will be distributed after the tournament ends.
🤑Just like in Season 1, all trading activity counts toward farming points for the upcoming $ELT airdrop!
So by participating in the tournament, you’re not only competing for real rewards, but also boosting your future $ELT airdrop share.
⚡️ Electra also teased $ELT tokenomics:
• TGE supply — 100,000,000 $ELT
• Up to 10% allocated to the community airdrop
• 5,000,000 $ELT were already distributed in Season 1
• Season 2 has a significantly larger allocation focused on active traders and volume!
📈Took part in the Storm Trade contest and liked the vibe?
Then Squad Games by Electra is your next-level challenge:
✅ Bigger rewards
✅ $ELT farming
✅ Real incentives for your trading activity
🤑 The tournament is live!Join our squad, farm points and claim your share of rewards!
❤️TON Events Squad🧪
#Electra#SquadGames#Season2#Airdrop
🤝Squad Games Season 2 by Electra – MORE REWARDS, MORE ACTION!
After a successful first season, #Electra launches Squad Games Season 2 — this time with even higher stakes: more prizes, more bonuses, more winners, and more opportunities for active traders!
📅 Tournament Start: May 26
🕓 Duration: 2 weeks
💵Squad Rewards:
💲 Up to $100,000 USDT
🎁 Up to $100,000 in bonus vouchers
⚡️5,000,000 airdrop points
*Rewards will be distributed among the top 20 traders by volume in each of the top-6 squads.
💵Individual Rewards:
💲 $5,000 USDT will be shared among the top-20 traders with the highest PnL (in USDT) throughout the tournament.
💵 Daily Bonuses — $50 each*:
✅Best PnL of the day
✅Worst PnL of the day
✅Highest daily trading volume
*Rewards are issued as Electra bonus vouchers and will be distributed after the tournament ends.
🤑Just like in Season 1, all trading activity counts toward farming points for the upcoming $ELT airdrop!
So by participating in the tournament, you’re not only competing for real rewards, but also boosting your future $ELT airdrop share.
⚡️ Electra also teased $ELT tokenomics:
• TGE supply — 100,000,000 $ELT
• Up to 10% allocated to the community airdrop
• 5,000,000 $ELT were already distributed in Season 1
• Season 2 has a significantly larger allocation focused on active traders and volume!
📈Took part in the Storm Trade contest and liked the vibe?
Then Squad Games by Electra is your next-level challenge:
✅ Bigger rewards
✅ $ELT farming
✅ Real incentives for your trading activity
🤑 The tournament is live!Join our squad, farm points and claim your share of rewards!
❤️TON Events Squad🧪
#Electra#SquadGames#Season2#Airdrop