Функция 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
#GMX/USDT analysis :
#GMX is currently in a downtrend, trading below the 200 EMA. The price is foreseen to sustain its bearish momentum and retest prior lows. To consider opening a short position, it is advisable to await a retracement and a retest of the established resistance level.
TF : 2h
Entry : $24.05
Target : $21.78
SL : $25.11
#GMX хорошо смотрится. Для верующих в альтсезон, смарт сделка.
Купить по 23$ (spot разумеется)
Продать по 35$ допустим.
НЕ ФИНАНСОВЫ СОВЕТ!
GMX — это децентрализованная торговая платформа и токен, работающий на блокчейнах Arbitrum и Avalanche. GMX предлагает пользователям возможность торговать криптовалютами с низкими комиссиями и с использованием деривативов, таких как бессрочные фьючерсы. Платформа поддерживает спотовую и маржинальную торговлю, а также использует децентрализованные механизмы ценообразования.
Основные особенности GMX:
1. Торговля без посредников: GMX позволяет торговать напрямую через смарт-контракты, исключая необходимость в централизованной бирже.
2. Программа ликвидности: Пользователи могут предоставить ликвидность и получать вознаграждения в токенах GMX и ETH (на Arbitrum) или AVAX (на Avalanche).
3. Токен GMX: Он используется для участия в управлении платформой и предоставления ликвидности, а также его можно стейкать для получения вознаграждений.
4. GMX и GLP: GLP — это пул ликвидности, с которым связаны активы, доступные для торговли. GMX и GLP вместе обеспечивают работоспособность платформы.
Токен GMX стал популярным благодаря тому, что предлагает конкурентные условия для трейдеров в DeFi-секторе и обеспечивает низкие комиссии на фоне растущего спроса на децентрализованные биржи.