Функция 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
#Logodesign
Logo design developed for "Mumtaz" Women's Center. This logo, which includes a heart, butterfly, and letter M, was created based on the client's requirements. These symbolic forms mean that the women do everything with the ease of a butterfly, with all her heart.
“Mumtaz” Ayollar Markazi uchun ishlab chiqilgan logotip dizayni. Yurak, kapalak, va M harfini o’zida mujassam qilgan ushbu logotip, mijozning talab-istaklari asosida yasaldi. Ushbu ramziy ma’nodagi shakllar ayol zotining kapalakdek yengil harakat ila, har bir ishni chin qalbdan qilishni anglatadi.
Instagram |Behance
Designed by
Muqaddas Hafizova
#Logodesign
Uzb: Logos so'zi- (yunoncha: “soʻz”, “sabab” yoki “reja”) koʻplikda logoi, qadimgi yunon falsafasi va ilk nasroniy ilohiyotida, kosmosda yashirin boʻlgan ilohiy sabab, uni tartibga solib, unga shakl va maʼno beradi.
Ya’ni logos bu- tilida nuqsoni bor, ravon va to’g’ri gapirishga o’rgatuvchi xususiy maktab hisoblanadi.
Simbolda L+O+G+O+S harfalari mavjud.
Uzb: The word Logos- (Greek: "word", "reason", or "plan"), plural logoi, in ancient Greek philosophy and early Christian theology, the divine reason hidden in the cosmos, which orders it and gives it form and meaning.
In other words, logos is a private school that teaches fluent and correct speech. The school was founded by Lola Zunnunova.
According to the client's requirements and wishes, the logo was created in a minimal, monogram style, striving for simplicity. The symbol contains the letters L+O+G+O+S.
Instagram | Behance
Designed by
Muqaddas Hafizova
#Logodesign
Eng: Uchar Gilam is a local brend, which provides "Cleaning carpets" service in Tashkent. The logo gives a sense of fast and easy mood to attract local clients.
Uzb: Uchar Gilam mahalliy brend hisoblanib, gilam yuvish xizmatini ta’minlaydi. Mijozlarni jalb etish uchun, logo osonlik va tezlik kayfiyatini beradi.
Instagram | Behance
Designed by
Muqaddas Hafizova
#logoDesign#mentorship
🌋So'nggi kunlarda bir necha kishi logo dizayn bo'yicha shogirdlikka qiziqib murojaat qilishdi. Demak, bu yo‘nalishga bo‘lgan qiziqish va talab sezilarli darajada ortib bormoqda. Bu nafaqat ko‘pchilik uchun muhim, balki men uchun ham yangi marralarni zabt etish va tajribamni yanada oshirishga imkon beradigan qiziqarli challenge bo‘ladi. Shu sababli, sizlar uchun puxta o‘ylangan va amaliyotga yo‘naltirilgan maxsus dastur ishlab chiqdim.
🥋Dasturni iloji boricha o'zgacha, mukammal va har jihatdan o'ylab chiqilgan. Nasib qilsa bor tajribam va ko'nikmalarimni ulashaman.
Nomzodlar suhbat asosida saralanadi. Biznesga yanada samarali, keng qamrovli dizayn yechimlar bermoqchi, dizaynda o'zingizni yuqoriroq levelda ko'rishni istasangiz:
📩shaxsiydan xabar qoldiring 👉@olimjanov_17 va dastur bo'yicha batafsil ma'lumot oling.
@blogolimjanov
#logoDesign#mentorship
🌋So'nggi kunlarda bir necha kishi logo dizayn bo'yicha shogirdlikka qiziqib murojaat qilishdi. Demak, bu yo‘nalishga bo‘lgan qiziqish va talab sezilarli darajada ortib bormoqda. Bu nafaqat ko‘pchilik uchun muhim, balki men uchun ham yangi marralarni zabt etish va tajribamni yanada oshirishga imkon beradigan qiziqarli challenge bo‘ladi. Shu sababli, sizlar uchun puxta o‘ylangan va amaliyotga yo‘naltirilgan maxsus dastur ishlab chiqdim.
🥋Dasturni iloji boricha o'zgacha, mukammal va har jihatdan o'ylab chiqilgan. Nasib qilsa bor tajribam va ko'nikmalarimni ulashaman.
Nomzodlar suhbat asosida saralanadi. Biznesga yanada samarali, keng qamrovli dizayn yechimlar bermoqchi, dizaynda o'zingizni yuqoriroq levelda ko'rishni istasangiz:
📩shaxsiydan xabar qoldiring 👉@olimjanov_17 va dastur bo'yicha batafsil ma'lumot oling.
@blogolimjanov