Функция 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
A newly created wallet received 488,599 $HYPE worth $17.18M from #FalconX.
Address: 0x9ff9dbfadad1def3075d340bfc151c9392526880
https://x.com/OnchainLens/status/2039867557751214144
Follow @onchainlens for more onchain updates
A newly created wallet received 450 $BTC worth $30.27M from #FalconX.
Address: bc1q3aydm3nd6c7hejscde0hsdzsf4dsxkxd0l8f0dwn45y2znlh0dxq2aga8r
https://x.com/OnchainLens/status/2038782817791066483
Follow @onchainlens for more onchain updates
The whale "0xfb7" has further bought 20,013 $ETH ($59M) from #FalconX. The whale now holds 80,115 $ETH, worth $236.55M. Addresses: - 0xfb78aa8f38843629e89951d9db6fdc398d75e0a3 - 0xd4584bf988c9e8994688b56484e2f74ceaeefb20 https://x.com/OnchainLens/stat…
Just In: Arthur Hayes (@CryptoHayes) sent 3,597,122 $ENA ($499.34K) and 327,869 $PENDLE ($501.64K) to #FalconX and likely to send more fund.
8 hours ago, he sent 2.31M $LDO worth $980.3K to #FalconX.
https://intel.arkm.com/explorer/entity/arthur-hayes
https://x.com/OnchainLens/status/2018576988945178669
Follow @OnchainLens for more Onchain Updates
While others are panic selling, whale "0xFB7" further bought 13,000 $ETH ($30.93M) from #FalconX.
This brings the whale's holdings to 173,582 $ETH ($407.62M) and 750 $cbBTC ($59M).
https://intel.arkm.com/explorer/address/0xFB78AA8F38843629e89951D9db6FdC398d75e0A3
https://x.com/OnchainLens/status/2018471314684829769
Follow @OnchainLens for more Onchain Updates.
The whale "0xFB7" has further bought 20,000 $ETH for $56.03M from #FalconX.
This brings the whale's holdings to 110,154 $ETH, valued at $311.26M in staking.
Address: 0xFB78AA8F38843629e89951D9db6FdC398d75e0A3
https://x.com/OnchainLens/status/2017028375014154514
Follow @onchainlens for more onchain updates
Bitmine (@BitMNR) bought 20,000 $ETH ($58.22M) from #FalconX and further staked 184,960 $ETH, worth $538M.
In total, they have staked 2,128,160 $ETH, valued at $6.22B.
https://intel.arkm.com/explorer/entity/bitmine
https://intel.arkm.com/explorer/address/0x0E0d36c115F66a08958756d860E16b2FbE5AadbF
https://x.com/OnchainLens/status/2015932786839113916
Follow @onchainlens for more onchain updates
Bitmine ( @BitMNR) has received 31.75K $ETH worth ($93.50M) from #FalconX
Address - 0x1C79347985300642be2fB93b44BB6C4A2e46CEf8
https://x.com/OnchainLens/status/2003525975980568644
Follow @onchainlens for more onchain updates
3 newly created wallets received 2,509 $BTC worth $221.07M from #FalconX in the past 12 hours.
https://intel.arkm.com/explorer/address/35hG5iJGYsojY7F6jdHEQ3PjkTzdpvv2Vd
https://intel.arkm.com/explorer/address/3Ev15ETyusbhULAxtPs1vXXrAqJHfDbsWt
https://intel.arkm.com/explorer/address/32t7CyeQ5HMSnnnmLEKYJhqBocEMPHEVCq
https://x.com/i/status/2002172199269265678
Follow @onchainlens for more onchain updates
A newly created wallet received 836.4 $BTC, worth $73.67M, from #FalconX.
Address: 32t7CyeQ5HMSnnnmLEKYJhqBocEMPHEVCq
https://x.com/OnchainLens/status/2002002079565635946
Follow @onchainlens for more onchain updates
Ethena Labs (@ethena_labs) has sent 23.3M $ENA worth $4.74M into #FalconX, likely to sell 9 hours ago.
The wallet still holds 123.4M $ENA worth $25M
Address: 0xf0465df588906d820f831970262bdcca0f2b3e2d
https://x.com/i/status/2001968278785368460
Follow @onchainlens for more onchain updates