Функция 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
#Teatr
🎭Viloyatimizdagi teatrlarning 20-aprel, dushanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Laylaklar nolasi”
Vaqti: 11:00
Marg‘ilon shahar maqom teatri
Nomi: “Taqdir eshigi”
Vaqti: 14:30
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 18-aprel, shanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Shum bola”
Vaqti: 11:00
Qo‘qon shahar musiqali drama teatri
Nomi: “Bevalar o‘lani”
Vaqti: 14:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Taqdir eshigi”
Vaqti: 14:30
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 16-aprel, payshanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Oltin jo‘ja”
Vaqti: 11:00
Farg‘ona viloyati rus drama teatri
Nomi: “Ne hochu bit sobakoy”
Vaqti: 10:00
Nomi: “Sudiba Poeta”
Vaqti:14:00, 18:00
Qo‘qon shahar musiqali drama teatri
Nomi: “Xonuma”
Vaqti: 14:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:30
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 14-aprel, seshanba kungi repertuari bilan tanishing.
Farg’ona viloyati musiqali drama teatri
Nomi: “Kulolning orzusi”
Vaqti: 11:00
Marg’ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:30
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 13-aprel, dushanba kungi repertuari bilan tanishing.
Farg’ona viloyati musiqali drama teatri
Nomi: “Oy tutilgan tunda”
Vaqti: 11:00 / 14:00
Marg’ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:30
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 10-aprel, juma kungi repertuari bilan tanishing.
Farg’ona viloyati musiqali drama teatri
Nomi: “Kulolning orzusi”
Vaqti: 11:00
Marg’ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:30
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 9-aprel, payshanba kungi repertuari bilan tanishing.
Farg’ona viloyati musiqali drama teatri
Nomi: “Oy tutilgan tunda”
Vaqti: 14:00
Farg’ona viloyati rus drama teatri
Nomi: “Chernaya burka”
Vaqti: 12:00
Qo’qon shahar musiqali drama teatri
Nomi: “Sohibqiron”
Vaqti: 14:00
Marg’ilon shahar musiqali maqom teatri
Nomi: “Nola aylarman”
Vaqti: 14:30
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 8-aprel, chorshanba kungi repertuari bilan tanishing.
Farg’ona viloyati musiqali drama teatri
Nomi: “Laylaklar nolasi”
Vaqti: 11:00
Farg’ona viloyati rus drama teatri
Nomi: “Chernaya burka”
Vaqti: 10:00, 14:00
Qo’qon shahar musiqali drama teatri
Nomi: “Daydi itlar”
Vaqti: 11:00
Marg’ilon shahar musiqali maqom teatri
Nomi: “Nola aylarman”
Vaqti: 14:30
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 7-aprel, seshanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Sehrli libos”
Vaqti: 11:00
Farg‘ona viloyati rus drama teatri
Nomi: “Chernaya burka”
Vaqti: 10:00 / 14:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Nola aylarman” konserti
Vaqti: 14:30
Qo‘qon shahar musiqali drama teatri
Nomi: “Sohibqiron”
Vaqti: 14:00
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 27-mart, juma kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Teatrlashtirilgan konsert”
Vaqti: 11:00
Farg‘ona viloyati rus drama teatri
Nomi: “Kolobok”
Vaqti: 10:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:00
Qo‘qon shahar musiqali drama teatri
Nomi: “Charog‘bon”
Vaqti: 14:00
Farg'ona viloyati qo'g'irchoq teatri
Nomi: “Zumrad va Qimmat”
Vaqti: 10:00
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 26-mart, payshanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Alimentchi chol”
Vaqti: 11:00
Farg‘ona viloyati rus drama teatri
Nomi: “Xo‘ja Nasriddinning besh xotini”
Vaqti: 10:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:00
Qo‘qon shahar musiqali drama teatri
Nomi: “Aziz”
Vaqti: 14:00
Farg'ona viloyati qo'g'irchoq teatri
Nomi: “Ochil dasturxon”
Vaqti: 10:00
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 25-mart, chorshanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Sehrli libos”
Vaqti: 11:00
Farg‘ona viloyati rus drama teatri
Nomi: “Kitsik va Mitsik”
Vaqti: 10:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:00
Qo‘qon shahar musiqali drama teatri
Nomi: “Bevalar o‘lani”
Vaqti: 14:00
Farg'ona viloyati qo'g'irchoq teatri
Nomi: “Etik kiygan mushuk”
Vaqti: 10:00
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube