Функция 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
One bread. 100 children. School fees. Rent. 😭🍌
Omo Episode 3 is pure Nigerian survival at this point 😂
Watch till the end to see why Banana Father finally lost his mind 👀
#100PikinNoMoney
#NigerianHumor
#AIReels
#Instablog9jaVibes
Omo… this Sophia vs Bolaji saga is slowly exposing how far some Lagos “big girls” allegedly go just to maintain the soft life image online 😭🍿
People are now dissecting Sophia’s chats after she admitted she tagged her shopper on items “she didn’t even purchase.” Social media users are alleging that some influencers and soft life babes intentionally tag shoppers on luxury items just to create the illusion that they’re constantly cashing out and buying designer nonstop 👀
The streets are also dragging luxury vendors who allegedly allow clients pose with bags, orange boxes and expensive items for content before returning them later. At this point, many are asking if social media luxury is really what it seems 😩
Lagos packaging no dey ever disappoint sha 💀
What’s your take on this whole “fake it till you make it” soft life culture? 👇🏽
PS: See previous post for context
#Instablog9jaVibes#LagosGist#SoftLife#CelebrityDrama
Sophia Egbueje calls out her luxury shopper Bolaji on Snapchat
Lagos soft life don turn episode series 😭🍿
Imagine your personal shopper knowing ALL your secrets, receipts, debt stories, returned bags, and “packaging” moves… then friendship crashes 💀
At this point, who really keeps Lagos influencer secrets? 👀👇🏽
#Instablog9jaVibes#LagosGist#SoftLife#CelebrityDrama
Frank Edoho thought Nigerians would drag Chike but the internet said “drop EP first” 😭💀
Instead of backlash, bros is getting movie bookings, love declarations and free promo. Men really move differently in this country abeg 🥴🍿
#FrankEdoho#Chike#NigerianTwitter#Instablog9jaVibes
“She cheated on me first.”
“No, HE cheated on me first.” 😭💔
At this point, who do you guys actually believe in this Frank and Sandra drama? Omo this gist is getting messier by the minute ☕️👀
#FrankEdoho#Sandra#CelebrityDrama#Instablog9jaVibes
So village people are actually holding monthly board meetings and Nigerians are STILL stressing them 😭💀
Wait till you hear why Emeka really failed JAMB 😂 Comment the funniest excuse you’ve heard before 👀
#NigerianComedy
#VillagePeople
#FunnyReels
#Instablog9jaVibes
Internet people said Carter Efe should stream with Chike and omo… his reaction did not disappoint 😭😂
At this point, Nigerian social media deserves its own reality show because what is actually going on here? 💀
#CarterEfe#Chike#NigerianTwitter#Instablog9jaVibes
Episode 1: Watermelon thought life was finally getting better 😭🍉
Next thing… pineapple wife announced baby number 73 👶🏽
Watch till the end because this house now sounds like Balogun market 😂
#NigerianHumor
#FamilyChaos
#AIReels
#LagosLife
#Instablog9javibes
Lagos traffic can humble even the strongest person 😭🍉
Watch till the end to see what happened to this watermelon after “15 minutes away” turned into almost 3 hours 👀
What’s the worst traffic you’ve ever experienced in Lagos?
#LagosTraffic
#NigerianHumor
#AIReels
#LagosLife
#Instablog9jaVibes
NEPA really said “no soft life for anybody” 😭⚡
Just when the smoothie was blending perfectly… darkness entered. Watch till the end 🍓
What’s the fastest NEPA has ever taken light after your enjoyment started? 👀
#NigerianHumor#LagosLife#AIReels#RelatableContent#Instablog9jaVibes