Функция 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
defendnot 一键关闭 Windows Defender 的工具 #defender
一款用于禁用 Windows Defender 的工具,支持一键安装和持久生效,通过直接调用 Windows 安全中心(WSC)接口,注册虚拟杀毒软件,实现对系统自带的 Defender 实时防护服务的彻底禁用。
https://github.com/es3n1n/defendnot/releases
и немножно прекрасных дорожных моментов:
❔ При крещении вам залили в ботинки примерно ведро воды, ваши действия?
Отвечает Жоао!
Some beautiful road moments to share:
❔ During your baptism, your boots took about a bucket of water, what do you do?
João answers!
#defender
@MashaLelyanova
#defender#keyboard
🔥Бюджетные клавиатуры бренда Defender
LEGION GK‑010DL
➡️Тип: Проводная, интерфейс USB
➡️Раскладка: Полноразмерная (104 клавиши, включая цифровой блок)
➡️Механизм: Мембранные переключатели
➡️Подсветка: RGB
➡️Длина кабеля: ~1,5 м
➡️Anti-ghost: есть (до 19 клавиш)
➡️Ресурс клавиш: около 60 млн нажатий
➡️Вес: ~0,78 кг
➡️Цвет: черный
💳15 y.e
💳15 y.e.
HAWK GK-418
➡️Тип: Механическая клавиатура
➡️Switches: Outemu Brown
➡️Клавиши: 97 штук.
➡️Подключение: Проводное, USB (1.5 м кабель)
➡️Подсветка: Радужная (RGB), ~12 режимов.
➡️Сила нажатия: ~45 ± 10 г (в версии с Red)
➡️Ход клавиш: 4.0 мм, срабатывание ~2.0 мм ± 0.6
➡️Ресурс нажатий: ~5 миллионов нажатий
➡️Материал кейкапов: ABS, технология double-injection (символы не сотрутся)
➡️Размеры и вес: примерно 385 × 136 × 35 мм, вес ~710 г (в версии с Brown)
💳25 y.e
BLITZ GK-240L
➡️Тип: Механическая клавиатура
➡️Переключатели: Outemu Blue (щелкающие)
➡️Клавиши: 87 (80% / TKL)
➡️Подключение: Проводное, USB (1.5 м кабель)
➡️Подсветка: Радужная RGB, ~12 режимов
➡️Сила нажатия: ~60 ±10 г
➡️Ход клавиш: 4.0 мм, точка срабатывания ~2.0 мм
➡️Ресурс нажатий: 10 млн нажатий
➡️Регулировка угла: выдвижные ножки
➡️Габариты: примерно 360 × 135 × 37 мм
➡️Вес: ~650 г
💳25 y.e
IVORY GK-579
➡️Тип: механическая
➡️Переключатели (Switches): Outemu Red (линейные)
➡️Количество клавиш: 87 (без цифрового блока)
➡️Подключение: проводное, USB (USB Type-A)
➡️Кабель: длина ~1,5 м
➡️Подсветка: RGB, 17 режимов
➡️Материал кейкапов: ABS, технология double-injection (символы не стираются)
➡️Ресурс нажатий: ~5 миллионов нажатий
➡️Сила нажатия: 60 ± 15 г
➡️Размеры: 358 × 135 × 30 мм
➡️Вес: ~0.62 кг
💳25 y.e
➖➖➖➖➖➖➖➖➖
📍 Локация: [Малая кольцевая дорога 8A]
⏰ Время работы: [с 10:00 до 20:00]
📞 +998338082030
🔵@Comping_admin
➖➖➖➖➖➖➖➖➖
🔵Telegram📷Instagram🟥Youtube
🔥🚗 Introducing the new Octa edition of the legendary Land Rover Defender , now officially the most powerful and fastest version of the model yet, thanks to its 635-horsepower V8 engine.
🔴Equipped with a "mild-hybrid" system, the V8 engine delivers up to 800 Nm of torque and pairs with an eight-speed automatic transmission. The new Defender can accelerate from 0 to 100 km/h in just 4 seconds and reach a top speed of 250 km/h.
🔴The driving electronics have been updated with several new modes, including "Fast Off-Road Driving," which features special ABS settings for unstable surfaces and off-road launch control for an active start.
Would you put the pedal to the metal in this Defender off-roading adventure?
🔥 — Absolutely!
👎 — Off-roading and high-speed driving don't mix
#LandRover#Defender
🇷🇺 ONORE ai CADUTI
Donetsk
Repubblica Popolare di Donetsk
Federazione Russia
5/8/2025
( ⚔️ Qui giace, tra gli altri, Motorola, il mitico comandante del battaglione Sparta ).
#donetsk#Donbass#motorola#russia#europa#Defender#italia#spartan#Spartak
https://t.me/gianlucaprocaccinireport