Функция 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
⚡️Rossiyada VPN ruxsat etildi!
🇷🇺 Endi RF hududida FSB litsenziyasiga ega sotuvchilardan VPN’ni qonuniy ravishda sotib olish mumkin. Asosan bunday xizmatlarni aloqa operatorlari taqdim etadi. U orqali esa Telegram va Instagram kabi tarmoqlarga kirsa bo'ladi shunda.
➡️#rossiya | Birinchi IT-Blog
🛰 "MegaFon" Rossiyada sputnik-internet tayyorlamoqda
📡 Rossiyaning chekka hududlariga internet olib borish uchun yangi loyiha e'lon qilindi. 2027-yilgacha sun'iy yo‘ldosh orqali 500 baza stansiyasi ulanishi rejalashtirilgan.
🌐 Loyiha yuqori tezlikdagi internet va past kechikishni ta'minlab, chekka hududlarda telemeditsina va boshqa zamonaviy xizmatlardan foydalanish imkonini beradi.
➡️#rossiya | Birinchi raqamli IT-Blog
📵Smartfon o'z egasining burnini sindirdi
😴 24 yoshli qiz ijtimoiy tarmoqlarni ko‘rayotib uxlab qolganida, qo'lidagi smartfoni yuziga tushib, burnini sindirib qo‘ydi. Bu hodisa Moskva viloyatida sodir bo‘ldi.
🏥 Vrachlar unga kechasi tez yordam ko‘rsatib, burun sinishini o‘ngladilar. Aytilishicha, 10 kun ichida shish qaytishi kutilmoqda.
⚠️ Ushbu voqea gadjetlardan ehtiyot bo‘lishni yana bir bor eslatadi. Telefoningizni o‘z vaqtida qo‘yib, dam olishni unutmang!
➡️#rossiya | Birinchi raqamli IT-Blog
🚫 Discord bloklandi!
🇷🇺 Rossiya qonunchiligi talablariga rioya qilmaganligi uchun Discord platformasi blok qilindi va endi VPNsiz ishlamasa kerak u ham.
➡️#rossiya | Birinchi raqamli IT-Blog
😀Youtube cheklanishi ortidan Rossiyada mana shunaqangi memlar ham paydo bo'lmoqda
💿 Bu degani, har oyda chiqadigan qiziqarli videolar xuddi oldingidey diskka yozilib sotiladi. Bu hazil albatta.
➡️#rossiya | Birinchi raqamli IT-Blog
1-sentabrdan boshlab Rossiyada barcha smartfonlarga oldindan majburiy tarzda Max ilovasi o‘rnatiladi — deb ma’lum qildi Hukumat
Rossiyaning “MAX” messenjerini majburiy joriy qilishiga bir nechta asosiy sabablar bor:
🔹 1. Raqamli suverenitet
— Rossiya oxirgi yillarda “raqamli mustaqillik” siyosatini kuchaytirayapti.
— WhatsApp, Telegram, Instagram kabi xorijiy messenjer va ijtimoiy tarmoqlarga to‘liq ishonmaydi, chunki ular chet el serverlarida ishlaydi.
— Shu sababli o‘zining milliy messenjerini joriy qilib, barcha aloqa va ma’lumotlarni mahalliy serverlarda saqlashni istayapti.
🔹 2. Nazorat va xavfsizlik
—MAX’da end-to-end shifrlash yo‘q, ya’ni barcha yozishmalar serverlarda ochiq saqlanadi.
— Hukumat bu orqali foydalanuvchilarning xatti-harakatlarini, moliyaviy operatsiyalarini va aloqa doirasini kuzatishi mumkin.
— Bu xavfsizlikni ta’minlash deb e’lon qilinsa ham, amalda tsenzura va nazoratni kuchaytirishga xizmat qiladi.
🔹 3. Import o‘rnini bosish va ichki bozorni qo‘llash
— Chet el messenjerlariga qarshi cheklovlar fonida (masalan, WhatsApp va Telegramda qo‘ng‘iroqlar bloklangan), foydalanuvchilarni asta-sekin mahalliy ilovaga o‘tkazish rejalashtirilgan.
— Shu bilan Rossiya o‘z kompaniyalarini qo‘llab-quvvatlaydi.
👍Bizning barcha loyihalar | #rossiya
Prezident Shavkat Mirziyoyev Rossiyaga amaliy tashrifini yakunlab, Toshkentga joʻnab ketdi. Oliy martabali mehmonni Sankt-Peterburg gubernatori Aleksandr Beglov va boshqa rasmiy shaxslar kuzatib qoʻydi.
—
Президент Шавкат Мирзиёев завершил свой рабочий визит в Россию и отбыл в Ташкент. Высокого гостя проводили губернатор Санкт-Петербурга Александр Беглов и другие официальные лица.
#Mirziyoyev#tashrif#Rossiya
Prezident.uz|Facebook|Instagram|YouTube|X
🇷🇺Rossiyada Telegram yetib keldimi?
📉 Aytishlaricha, Moskva va Sankt-Peterburg foydalanuvchilari ilova ishlamayotganidan ommaviy shikoyat qilishmoqda. Uyoqdagi obunachilarimizda nima gap?
➡️#telegram#rossiya | Birinchi IT-Blog
Oʻzbekiston Respublikasi Prezidenti Shavkat Mirziyoyev amaliy tashrif bilan Sankt-Peterburg shahriga keldi. “Pulkovo” xalqaro aeroportida oliy martabali mehmonni gubernator Aleksandr Beglov va boshqa rasmiy shaxslar kutib oldi.
—
Президент Республики Узбекистан Шавкат Мирзиёев прибыл с рабочим визитом в Санкт-Петербург. В международном аэропорту «Пулково» высокого гостя встретили губернатор Александр Беглов и другие официальные лица.
#Mirziyoyev#tashrif#Rossiya
Prezident.uz|Facebook|Instagram|YouTube|X
Oʻzbekiston Respublikasi Prezidenti Shavkat Mirziyoyev amaliy tashrif bilan Sankt-Peterburg shahriga keldi. “Pulkovo” xalqaro aeroportida oliy martabali mehmonni gubernator Aleksandr Beglov va boshqa rasmiy shaxslar kutib oldi.
—
Президент Республики Узбекистан Шавкат Мирзиёев прибыл с рабочим визитом в Санкт-Петербург. В международном аэропорту «Пулково» высокого гостя встретили губернатор Александр Беглов и другие официальные лица.
#Mirziyoyev#tashrif#Rossiya
Prezident.uz|Facebook|Instagram|YouTube|X