Функция 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
🚀 Join us on a journey to revolutionize the world of asset #tokenization and #engagement!
🌍 Our mission is clear: empower individuals and enterprises globally through innovative solutions, strategic partnerships, and #community-driven initiatives.
Learn more at: https://goplatform.io/blog/revolutionizing-enterprise-engagement-the-power-of-asset-tokenization-with
Together, we can create a transformative ecosystem where everyone has the opportunity to thrive.
🌞 Bonjour à tous nos chers abonnés ! 🌍🫵🏽
Nous vous souhaitons un excellent mercredi rempli d'énergie et de détermination. ✨💪🏾La lutte continue, restons unis et solidaires !
#Force#Engagement#Ensemble
@egountchibehanzinTV
Channel: Instagram Accounts & Services
Members: ~3.49K
💢 Username: @buyinstaaccounts
Description:
We Sell Instagram Accounts, Followers, Likes, Views, Commmets Or Any Other Service Regarding Instagram. With 8 Years Of Experience.
🏷 Tags: #games_apps
#instagram#accounts#social_media#followers#engagement
https://telegramchannels.me/channels/buyinstaaccounts
TVision Secures $1.5M Funding
TVision has raised $1.5M in funding as of December 16, 2024. The company utilizes advanced computer-vision technology to analyze viewer engagement for both Linear and CTV, offering person-level insights into viewing habits.
#Funding#TVision#Technology#ViewerEngagement#CTV#Linear#Insights#ComputerVision#Analytics#Viewership#Audience#Engagement#Media#Streaming#Data#Research#Investment
Telegram Unveils Major NFT Update
🎉 Telegram introduces a big update allowing gifts and stickers to be converted into NFTs. Gifts gain unique traits like emotions, backgrounds, and colors, enhancing their individuality and value. Rare traits will be limited to 10% of users, creating opportunities for resale at higher prices. Gifts can be converted for 25 Stars, while minting NFTs incurs network fees. Future integration with platforms like Fragment or GG is expected for seamless NFT creation. 🐸 The latest highlight is a unique frog gift gaining traction!
For more details, visit: Full Update
#Telegram#NFT#Gifts#Crypto#Updates#Blockchain#Stars#Minting#Fragment#GG#Frogs#RareItems#DigitalAssets#Community#Market#Trading#Tech#Innovation#SocialMedia#Engagement#CryptoTrends
AI Video Editor Raises $500K
Diffusion Studio has secured $500K in funding as of December 4, 2024. Their AI Video Editor simplifies video editing with advanced features such as Magic Cut, Text-Based Editing, and Instant Auto-Captioning, catering to creators and businesses aiming to enhance their video production efficiency.
#AI#VideoEditing#Funding#Technology#Creators#Influencers#Business#Automation#Software#Innovation#EditingTools#VideoProduction#TextBasedEditing#AutoCaptioning#Workflow#Engagement#Professional#ContentCreation#Creativity#Efficiency