Функция 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
#ITC#Robototexnika
⚡️Markazimizda Robototexnika kurslari boshlanmoqda
Kursning afzalliklari:
➖O'quv jarayonida zarur bo'lgan materiallar markaz tomonidan beriladi;
➖ Kompyuter va internet bilan jihozlangan shinam xonalar;
➖ Darslar professional mutahassis tomonidan olib boriladi;
➖ Respublika, viloyat hamda jahon miqyosidagi musobaqa va tanlovlarga borish imkoniyati;
➖ Hamyonbop narxlar
🚀 Dastlabki guruh uchun faqatgina 10 nafar o'quvchi qabul qilamiz.
Batafsil ma'lumot uchun:
Tel: 990009627 | 950033748
Ijtimoiy tarmoqda murojaat:
Menejer | Telegram kanal | Mutahassis
#ITC#Robototexnika
Nocomment | Ta'rif shart emas
🔥Markazimizda o'z ish faoliyatini boshlagan Robototexnika bo'yicha professional mutahassis Azizxon Akramov tomonidan yasalgan telefon orqali boshqariladigan mashina
@ITCenter_Yaypan — zamonaviy kasblar markazi
IT Yakkabog’
Birinchi dars – birinchi natija! 💥
O‘quvchilarimiz qo‘llarida wedo 2.0 , oldida g‘oya — natijada esa harakatlanadigan robot 🤖
Har bir katta ixtiro — kichik bir darsdan boshlanadi.
#robototexnika#boshlanish#o‘quvchilarijodi #texnologiya#education
IT Yakkabog’
Birinchi dars – birinchi natija! 💥
O‘quvchilarimiz qo‘llarida wedo 2.0 , oldida g‘oya — natijada esa harakatlanadigan robot 🤖
Har bir katta ixtiro — kichik bir darsdan boshlanadi.
#robototexnika#boshlanish#o‘quvchilarijodi #texnologiya#education
📍 Yakkabog‘ tumanida ilk bor ochilayotgan IT markazi o‘z qabullarini boshladi!
📞 Batafsil ma’lumot: +998(99)-126-32-07
#Yakkabog#IT#SMM#Dizayn#Robototexnika#Kelajak#yakkabog’
🚀Kelajak kasblarini o‘rganish endi Yakkabog‘liklar uchun yanada qulay!
📍 Yakkabog‘ tumanida ilk bor ochilayotgan IT markazi o‘z qabullarini boshladi!
✨Bu yerda siz: 💻 IT | 📱 SMM | 🎨 Grafiz dizayn | 🤖 Robototexnika kabi kasblarni nafaqat o’rganib, balki haqiqiy proektlar ustida ishlab ko’rasiz!
Joylar soni cheklangan!
Hozirning o‘zida bog‘laning va kelajak sari ilk qadamni tashlang! ✨
📞 Batafsil ma’lumot: +998(99)-126-32-07
#Yakkabog#IT#SMM#Dizayn#Robototexnika#Kelajak
🚀 IT Yakkabog’da barcha kurslarga qabul boshlandi!
💡 Orzuyingizdagi IT kasblariga ilk qadamni qo’ying!
⏳ Joylar soni cheklangan, imkoniyatni boy bermang!
📞 Batafsil ma’lumot uchun:
+998 (99) 126-32-07
#kelajak#robototexnika#dizayn#smm#it#yakkabog#fyp
🤖🌐 Diqqat, kelajak muhandislari va ijodkorlari! 🌟
🔧 Ziyo Day doirasida #Robototexnika bo'yicha MasterClass! 🔧
📅 16 dekabr, 13:15-15:00
5-8-sinf o‘quvchilari uchun robot yig‘ish bo‘yicha amaliy tajribaga ega bo‘ladigan qiziqarli robototexnika mahorat darsi! 🚀
Tadbir dasturi:
13:15-13:35: Robototexnika kursi taqdimoti bilan kelajak eshigini oching.
13:35-13:50: Robotning elementlari va ularning roli haqida hamma narsani bilib oling.
13:50-15:00: O'z robotingizni yaratish imkoniyati!
Ziyo Day robototexnika olamida yorqin xotira va unutilmas sarguzasht bo'ladi. Hammani taklif qilamiz! 💡🛠
Tadbirha qatnashish uchun @YouthCenterZiyo telegram kanalimizda oldindan ro'yxatdan o'tishni unutmang.
🤖🌐 Внимание, будущие инженеры и творцы! 🌟
🔧#МастерКлассПоРобототехнике в рамках ziyo day! 🔧
📅 16 декабря, 13:15-15:00
✨ Готовьтесь к захватывающему опыту робототехники, специально для школьников 5-8 классов!
🚀 Программа события:
13:15-13:35: Открой дверь в будущее с презентацией курса робототехники.
13:35-13:50: Разберем каждую деталь - узнай всё о элементах робота и их роли.
13:50-15:00: Ваш шанс создать своего робота! - Практический этап, где вы воплотите свои идеи в жизнь.
Ziyo day станет ярким воспоминанием и незабываемым приключением в мире робототехники. Приглашаем всех желающих! 💡🛠
Не забудьте зарегистрироваться заранее в нашем телеграм-канале @YouthCenterZiyo, чтобы гарантировать себе место на мероприятии. #Робототехника#Образование
#Robottexnika#Ta'lim #ZiyoDay#TerritoryOfYourDevelopment#EducationRevolution#ZiyoCommunity#ТерриторияТвоегоРазвития#ZiyoJamiyati#SizningRivojlanishHududi.