Функция 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
🚨 GitHub 监控消息提醒
🚨发现关键词:#Bypass#OTP
📦项目名称:OTP-Bot-One-Time-Password-Telegram-Api-Paypal-Whatsapp-Verification-Bypass
👤项目作者:B4BREAON
🛠开发语言: JavaScript
⭐Star数量: 0 | 🍴Fork数量: 0
📅更新时间: 2026-04-12 10:01:05
📝项目描述:
victim’s digital banking account, the attacker feeds the OTP bot with the consumer’s phone number and the name of the bank. These inputs prompt the OTP bot to initiate a call to the victim and dupe them into divulging the 2FA code (OTP or token)
🔗点击访问项目地址
🚀Airdrop : OctoPow
🎁Reward: $100 OTP per winner
🥞Winners : 10,000
💻Distrubution: 30 Oct 2022
🔘End Date: 28 Oct 2022
Airdrop Link : Click Here
📌Steps to Enter Airdrop :
▪️ Join Telegram Channel & Group
▪️ Follow Twitter
▪️ Like & RT pinned post + TAG 3 friends with hashtag #OTP#ETHW
▪️ Join Discord Sever
📃Information
The OctoPowswap protocol is a peer-to-peer system designed for exchanging cryptocurrencies (ERC-20 Tokens) on the Ethereum POW blockchain.
🌎Website: https://octopow.finance
Disclaimer: Please do your own research before joining to any airdrops project, also airdrop is 100% free. Don't send any fee or penny for receiving airdrop tokens. Just join airdrop for free!
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев Венгриянинг энг йирик “OTP” банки бошқаруви раиси Шандор Чаньини қабул қилди.
—
Президент Республики Узбекистан Шавкат Мирзиёев принял председателя правления крупнейшего венгерского банка «OTP» Шандора Чаньи.
#Mirziyoyev#qabul#OTP#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X
🚨 GitHub 监控消息提醒
🚨发现关键词:#Bypass#AV#OTP
📦项目名称:OTP-Bot-One-Time-Password-Verification-Bank-Paypal-Bypass-2FA
👤项目作者:B4BREAON
🛠开发语言: JavaScript
⭐Star数量: 0 | 🍴Fork数量: 0
📅更新时间: 2026-04-09 16:01:16
📝项目描述:
OTPBYPASS Bot sends a post request to the api, which will save the call into a sqlite DB and send the call to the custom twilio API.Google,Snapchat,Instagram,Facebook,Whatsapp,Twitter,Amazon
🔗点击访问项目地址
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев "OTP Bank Group" директорлар кенгаши раиси Шандор Чаньи билан учрашув ўтказди.
—
Президент Республики Узбекистан Шавкат Мирзиёев провел встречу с председателем совета директоров «OTP Bank Group» Шандором Чаньи.
#Mirziyoyev#uchrashuv#OTP#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X