Функция 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
Visionaries, it's time to expand our horizons & explore another new platform together!! 🤜🤛
Join us on #Threads for exclusive content, engaging discussions, and endless opportunities to WIN! 🔝
Show us your love on #Threads too!
@vision11official
Please follow for latest update👇👇
https://www.threads.net/@vision11official
Threads – twitter dasturiga o’xshash bo'lgan dastur bo'lib, faqat Instagramning matnga asoslangan versiyasi hisoblanadi.
ℹ️ Bu dastur instagram bilan bog'langan va siz dasturdan foydalanishingiz uchun instagram akkaunt talab qilinadi.
😎Threadsni o'rnatganlar bo'lsa kompyuter bilimlari kanalimiz sahifasiga obuna bo'ling – http://threads.net/@kompyuter_bilimlari
😄 Rasmga baxo berish esdan chiqmasin-aa))
👉🏼Birinchi raqamli Windows Blog | #threads / #atama
Сколько времени вы проводите в соцсетях?🧐
Кажется, скоро будем проводить еще больше, ведь в июле появилась новая сеть #Threads, которую все называют аналогом #Twitter.
💼Некоторые бренды уже начали использовать новый инструмент в работе. Оставляйте комментарии, мы соберем подборку ваших мнений в наш канал в Дзене.
Как вы оцениваете запуск новой социальной сети Threads? Будете ли использовать в работе? И как?
Meta 旗下社交媒体 Threads 移动端日活超越 X 平台,网页端差距悬殊揭示社媒格局新变化
Similarweb报告显示,Threads移动端日活达1.415亿,已超越X平台。Threads的增长得益于Meta的交叉推广与功能完善;而X平台受AI争议及监管调查影响,美国日活大幅下滑。尽管X在网页端仍具绝对优势,但其领先地位正被削弱,Threads正逐渐成为主流社交工具。
标签:#threads#x
Created by RocM
官方频道:@rocCHL
官方群组:@roctech
官方合作:@rocmmbot