Функция 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
🐱TAO NFC SDK - библиотека для упрощения работы с NFC в Android приложениях, особенно упрощая работу с NDEF (NFC Data Exchange Format).
🔗 Автор также написал статью на русском про библиотеку
#android#nfc
微信测试境外 NFC 支付功能:使用 Visa 网络,支持零钱通、零钱付款
微信正在测试境外 NFC 支付功能,目前仅支持安卓手机。用户可通过 Visa 网络完成支付,资金来源为零钱或零钱通,不支持银行卡。该功能尚处测试阶段,需在境外环境下才能开启。
标签:#微信#nfc
Created by RocM
官方频道:@rocCHL
官方群组:@roctech
官方合作:@rocmmbot
#приплыли
🟢Россиийская киберполиция задержала группу,совершавшую хищения с использованием NFCGate
Речь о межрегиональной преступной преступной группе. В числе задержанных - главный админ панели управления программы NFCGate.
🟢Именно этой группой совершались дистанционные хищения денег с банковских карт граждан практически по всей России.
🟢Уже подтверждено более 600 эпизодов преступной деятельности на территории 78 регионов России.
Сообщается, что помощь в выявлении преступной схемы оказали специалисты
«Лаборатории Касперского».
‼️По предварительным данным, сумма ущерба превышает $2,6 миллиона (~200 миллионов рос.рублей).
Суть схемы.
#киберновости#россия#nfc
Буст канала