Функция 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
🚘 Texnobloger Cybertruck’ini sotdi va...
📱 Texnobloger Twitter sahifasida Cybertruck avtomobilini sotganini e’lon qildi. Ortidan Ilon Mask uning akkauntidan obunani bekor qilganini payqab qolishdi.
🗣 Ijtimoiy tarmoq foydalanuvchilari bu qadamni “Maskga texnobloger qarori yoqmadi shekilli” deb baholashmoqda.
➡️#ilonmask | Birinchi raqamli IT-Blog
🚀 Ilon Mask X’da SpaceX aksiyalarini sotish orqali kompaniya qiymatini $800 mlrdga chiqarish haqidagi xabarlarni rad etdi
ℹ️ Uning aytishicha, SpaceX bir necha yildan beri ijobiy pul oqimini yaratib keladi va yiliga ikki marta aksiyalarni qayta sotib olib, xodimlar va investorlar uchun likvidlikni ta’minlaydi.
📰Bloomberg avvalroq aksiyalarni sotish rejalashtirilayotgani, bu esa ayrim investorlar uchun qisman chiqish imkonini berishi mumkinligi haqida xabar bergandi. Mask to'ga esa kompaniyaning moliyaviy barqarorligini ta’kidlab, vaziyatni aniqlashtirdi.
➡️#ilonmask#spacex | Birinchi IT-Blog
🤖 Ilon tog'a Maskov Tesla Optimus roboti kung-fu uslubida jang qilishni o‘rganayotganini namoyish qildi, uni hech kim boshqarmayapti...
➡️#robot#ilonmask | Birinchi raqamli IT-Blog
📝Grokipedia — Ilon Mask va uning xAI kompaniyasidan yangi onlayn ensiklopediya
ℹ️ Ilon Mask uzoq vaqtdan beri “Vikipediyani” “bir tomonlama” ekanligi uchun tanqid qilib keladi va shuning uchun sun’iy intellektga asoslangan o‘z alternativasini taqdim etdi.
✍️Grokipediyadagi maqolalar foydalanuvchilar tomonidan tahrir qilinmaydi, balki Grok sun’iy intellekt modeli tomonidan yaratiladi va qo‘llab‑quvvatlanadi. Shu bilan birga, Mask Vikipediyani tanqid qilgan bo‘lsa-da, ayrim materiallar aynan undan olingan yoki moslashtirilgan; bunday sahifalarda “Wikipedia’dan moslashtirilgan” degan belgi mavjud.
📊 Hozircha Grokipediya faqat ingliz tilida 885 000 maqolaga ega, Vikipediyada esa taxminan 7 million inglizcha maqola mavjud. Shuningdek, Mask ensiklopediyasida hozircha rasm yo‘q.
💡 Loyiha darhol ishonchlilik va mustaqillik bo‘yicha savollarni keltirib chiqardi: tanqidchilar tahrirlash tizimi shaffof emasligini va ayrim maqolalar bahsli nuqtai nazarlarni aks ettirayotganini ta’kidlashmoqda.
✅ Grokipedia barcha foydalanuvchilar uchun butunlay bepul ochiq, ammo hozircha faqat beta-versiya v0.1 sifatida mavjud.
➡️#ilonmask#grokipedia | Birinchi raqamli IT-Blog
💰 Errol o'g'li Ilon to'ga Maskov OpenAI'ni sotib olish uchun 97,4 milliard dollar taklif qildi
📱 Musk bu kompaniyani o‘zining xAI loyihasi bilan birlashtirishni rejalashtirmoqda.
❌ Sem Altman, OpenAI bosh direktori, taklifni rad etdi va hazil tariqasida:
“Yo‘q, rahmat. Lekin xohlasangiz, biz Twitter’ni 9,74 milliard dollarga sotib olishga tayyormiz,” dedi.
🤷♂️ Hozircha kelishuv bo‘yicha rasman hech qanday qaror qabul qilinmagan. Kelajakda muzokaralar davom etishi mumkin.
➡️#ilonmask#openai#ai#xai | Birinchi raqamli IT-Blog