Функция 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
RAMAZON HAYITI NAMOZINING O‘QILISH VAQTLARI BILAN TANISHING!
Yurtimiz masjidlarida 2026-yil 20-mart – juma kuni Ramazon hayiti namozining o‘qilish vaqtlari quyidagicha belgilandi:
1. Andijon viloyati 06:40
2. Farg‘ona viloyati 06:40
3. Namangan viloyati 06:40
4. Toshkent shahar 06:50
5. Toshkent viloyati 06:50
6. Sirdaryo viloyati 06:55
7. Jizzax viloyati 07:00
8. Samarqand viloyati 07:00
9. Navoiy viloyati 07:05
10. Buxoro viloyati 07:05
11. Qashqadaryo viloyati 07:05
12. Surxondaryo viloyati 07:05
13. Xorazm viloyati 07:25
14. Qoraqalpog‘iston Respublikasi 07:30
#namoz#vaqt#ramazon_hayiti
✅ O‘zbekiston musulmonlari idorasi Matbuot xizmati
#xabar#istisqo#namoz
🕌 ЖУМА КУНИ ИСТИСҚО НАМОЗИ ЎҚИЛАДИ
🌙Динимиз таълимотида умумманфаатига хизмат қиладиган ишларга алоҳида эътибор қаратилади. Хусусан, Ислом тарихида қурғоқчилик кузатилган пайтларда истисқо намози ўқилгани ва унинг самараси кўрилгани келтирилган.
📿 Пайғамбаримиз соллаллоҳу алайҳи васаллам ёмғир ёғмай, сувсизлик бўлган даврларда жамоат билан қиблага юзланиб дуо қилганлари, кейин ўзлари имом бўлиб намоз ўқиганлари ривоят қилинган. Аллоҳ таолодан сув-ёмғир сўраладиган истисқо намози фазилати ҳадис китобларида баён қилинган.
📢 Жорий йилда куз фасли ёмғирсиз ўтаётгани, келгуси кунларда ҳам ёғингарчилик кутилмаётгани, ёмғир эса ризқу рўз, мўл-кўлчилик омили экани эътиборидан Ўзбекистон мусулмонлари идораси раиси, муфтий Шайх Нуриддин Холиқназар ҳазратлари ташаббуслари билан 2025 йил 28 ноябрь куни жума намозидан кейин юртимиздаги барча масжидларда Аллоҳ таолодан тавба-тазарру, истиғфор ила ёмғир сўраб, жамоат билан икки ракат истисқо намози ўқилади.
🗣 Шунингдек, вилоятлар, туман-шаҳарлар марказий масжидлари ва зиёратгоҳларда жонлиқлар сўйилиб, ёрдамга муҳтож оилалар, етим-есирлар, бева-бечоралар, мискинлар, боқувчисини йўқотган кексаларга тарқатилади.
🌙Ўзбекистон мусулмонлари идораси тасарруфидаги Олий ва ўрта махсус ислом таълим муассасалари устоз ва талабалари томонидан Имом Бухорий “Саҳиҳи Бухорий” асари шу йил 28 ноябрь куни жума намозига қадар хатми кутуб қилинади. Зеро, Имом Бухорийнинг “Саҳиҳ”лари қурғоқчиликда ўқилганда, Aллоҳ таолонинг иродаси ила ёмғир ёққани тарих китобларида ёзилган.
🤲🕋 Маккаи мукаррама ва Мадинаи мунавварада умра зиёратида бўлиб турган элликбоши имом-домлаларимиз Ҳарами шарифларда ўз гуруҳлари иштирокида истисқо намозини ўқишлари тавсия этилади.
🤲🌧 Аллоҳ таоло қилинажак тоат-ибодатлар, дуою тазарруларни даргоҳи илоҳийсида қабул айлаб, диёримизда обиҳаёт неъматини мўл-кўл этсин.
✅ Ўзбекистон мусулмонлари идораси
Матбуот хизмати
🌐MUSLIM.UZ GA 📲 OBUNA BO'LING✅ VA ULASHING🗣
▶️YouTube | 📷Instagram | 🔵Facebook