Функция 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
• Очень интересное исследование про различного рода уязвимости, которые можно реализовать через SIM-карту. Даже примеры кода есть... А еще авторы собрали интересную тулзу для эмуляции SIM-карт, которая может быть интегрирована в различные устройства для тестирования и исследований.
➡️ Исследование: https://www.usenix.org/
➡️ GitHub: https://github.com/tomasz-lisowski/simurai
➡️ Материал в формате видео: https://youtu.be/3_R9P--ksE4
#SIM#ИБ
❌С 18 ноября SIM-карты мошенников начнут блокировать
Напомним, что операторы будут блокировать подозрительные номера в течение 2-х рабочих дней после получения жалобы или выявления мошеннических действий через антифрод-системы, интегрированные с антифрод-центром Национального банка.
При подтверждении подозрений о том, что с использованием номера велись мошеннические действия, оператор временно блокирует его и сообщает об этом в антифрод-центр. В случае, если информация о мошенничестве не подтвердится, оператор должен в течение двух дней уведомить об этом Нацбанк.
Это мера для борьбы с телефонным мошенничеством. Будем следить за тем, будут ли появляться жалобы на некорректные блокировки номеров 👀
#SIM#мошенничество#новости#Казахстан
📷BlueScreen | Digital Kazakhstan
Проверьте, на кого оформлен ваш мобильный номер. Даже если пользуетесь им уже много лет:
https://blog.antiphish.ru/all/your-number/
#мошенничество#номер#SIM
📱eSIM в Беларуси: пластик уходит в прошлое?..
Число пользователей цифровых SIM-карт растет. Только у МТС количество пользователей цифровых SIM-карт за год выросло более чем на 30%.
🤳Кто в тренде?
▫️ Пользователи в возрасте 31-40 лет
▫️ Владельцы iPhone (лидер – 15 модель), Samsung и Xiaomi
📶 Пользователи eSIM более активные в сети: потребляют на 14% больше трафика в сравнении со среднестатистическим абонентом.
Справочно: eSIM — это встроенный в смартфон модуль идентификации абонента, цифровая альтернатива классической SIM-карте. Данные eSIM загружаются на устройство с помощью QR-кода и содержат все необходимые параметры для подключения к сети. Подключить eSIM можно у всех мобильных операторов.
#мобильнаясвязь#SIM#eSIM#мтс