Функция 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
peter:
Name: 阿凡达:火与烬 (2025) 正式版.4K.高码率/ 阿凡达/ 阿凡达3
Size: 20g
描述:故事紧随《阿凡达:水之道》的结局,讲述了萨利一家虽暂时击退强敌,却也付出了长子牺牲的沉重代价。悲痛尚未平息,潜伏的危机却再度逼近,一场不可避免的决战即将拉开序幕。当弑亲之仇与部落恩怨交织,潘多拉的命运悬于一线的故事。
Link: 👉Press me and click START to get the hidden link
#电影#Quark#求转存
♾@gdsharing♾Google Drive限制了日分享流量:求补链
forever:
Name: 2026年1月16日 短剧分享
Size: ng
描述:
1.书卷游梦穿书炫肉嘎嘎香(69集)王一帆&李杰
2.前妻悔婚后,我和校花绑定甜宠系统(78集)范高坡&董洁
3.逆袭之我成了团播公司老板(82集)程勇炜&唐雪晴
4.离婚当天,我觉醒了宠妻系统(70集)王必可&陈星甜
5.双穿大乾开局一仓粮乱世称王侯(72集)凌晨&章凱玥
6.婚礼前初恋穿越回来了(100集)汤朵儿&曹渊
Link: 👉Press me and click START to get the hidden link
#短剧#Quark#求转存
♾@gdsharing♾资源分享不易:欢迎点赞支持分享者
forever:
Name: 20251014 短剧合集
Size: ng
描述:
1.佛珠碾欲(90集)张月&梅先锋
2.重生末世之囤岛求生(38集)Ai短剧
3.全村笑我傻我靠养鱼发家致富(60集)胥惠棠
4.我就是药神(61集)柴浩
5.因果循环(45集)崔永炫&李曼
6.顶流之路:从攻略弟弟开始&顶流之路从攻略弟弟开始(37集)Ai短剧
Link: 👉Press me and click START to get the hidden link
#短剧#Quark#求转存
♾@gdsharing♾Telegram/电报/纸飞机的网页端:可能无法点击链接
Allen:
Name: 名称:50部-2025年06月18日最新热门抖音快手百度番茄红果等付费短剧推荐
Size: 20G
描述:2025年06月18日最新热门抖音快手百度番茄红果等付费短剧推荐 / 每日同步更新
Link: 👉Press me and click START to get the hidden link
#短剧#Quark#求转存
♾@gdsharing♾Telegram/电报/纸飞机的网页端:可能无法点击链接
peter:
Name: 美女ASMR 助眠
Size: ng
美女ASMR 助眠音频
Link: 👉Press me and click START to get the hidden link
#asmr#Quark#求转存
♾@gdsharing♾Telegram/电报/纸飞机的网页端:可能无法点击链接
#1 k: v 💬