Функция 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
О витальности
В психологии существует понятие витальности, определяемое, как и многие подобные явления, довольно расплывчато: жизненные силы, уверенность в себе, стремление вперёд и проч. Тем не менее, оно более чем подходит для описания ряда цивилизационных процессов современности.
Европейцы (в широком смысле, т. е. включая РФ и США) по-прежнему остаются самым обеспеченным и образованным слоем населения, своеобразным «золотым миллиардом», только без конспирологического наполнения этого термина.
Однако с XX в. общеевропейский нарратив — «платить и каяться» за витальность своих предков. В ЕС и США это проявляется, главным образом, в BLM-повестке. В России после Октябрьской революции этот же процесс принял вид борьбы большевиков с «великодержавным русским шовинизмом».
В свою очередь, исламская цивилизация переживает рост витальности. Он проявляется в расширении подконтрольного пространства (дар аль-ислам) и установлении собственных порядков (напр. митинг за халифат в Гамбурге, недавние фетвы ДУМ, за которые Генпрокуратура уже вынесла представление).
Спустя годы войны против терроризма аш-Шараа aka аль-Джулани — рукопожатный «временный президент», а «Талибан» исключён из списка террористов. Великие державы теперь вынуждены считаться с их властью над Сирией и Афганистаном соответственно, несмотря на длительные собственные усилия по установлению там порядка в 2000—2020-х гг.
Всё это, пусть и в разных проявлениях, отражает общую историческую тенденцию: европейско-христианская цивилизация находится в упадке, мусульманская — на подъёме. Благодаря относительно высокому уровню комфорта, данный процесс может не беспокоить европейского обывателя.
Именно поэтому так важно самосознание и мироощущение человека, и я также стараюсь заострять на этом внимание. Будущее Европы и мира во многом зависит от того, успеет ли такой обыватель восстановить свою витальность.
@epigonous | #tldr
#TLDR: 𝐖𝐡𝐚𝐭’𝐬 𝐧𝐞𝐰 𝐢𝐧 𝐌𝐎𝐌’𝐬 𝐂𝐎𝐒 𝟐𝟎𝟐𝟔? 👀
Here are the top 5 things you should know. Stronger support for workers, more inclusive workplaces, and measures to help businesses transform and grow. 💼💪
➡️ Find out what this means for you: go.gov.sg/momcos2026
Delivered:
Наиподробнейшая инструкция по сборке 75-ваттного лазера с себестоимостью <250$.
Сокращённая версия для продвинутых электронщиков и лазеристов - в комментариях.
Во имя Прометея и во славу Омниссии, прошу - поделитесь этим постом везде, уважаемые коллеги.
#diy
#tldr
#comments
Теперь надо будет ещё смонтировать видеоверсию.
Because we have seen an uptick in people trying to scam others allover the web, we like to remind everyone to stay safe online. Here are a few things that could in fact help you.
● Be careful what you click. Don’t open links or attachments from strangers or suspicious emails.
● Use strong passwords with letters, numbers, and symbols.
● Use a password manager to keep passwords safe and easy to use.
● Keep devices updated and use good antivirus software.
● Don’t share personal info like your address, birthday, real names, workplaces, or locations online.
● Think before you post—anything online can stay forever.
● Watch out for fake profiles and don’t trust people you don’t know.
● Teach kids to spot scams, avoid cyberbullying, and be polite online.
● Backup important data regularly to protect it from malware.
● Close old accounts you don’t use anymore.
● Only download apps or files from trusted sources.
● Use two-factor authentication (2FA) for extra security on your accounts.
● Avoid using public Wi-Fi for sensitive activities like banking.
● Log out from accounts when using shared or public devices.
● Don’t accept friend or follow requests from people you don’t know.
● Be cautious about what apps you allow to access your personal info or location.
● Report any suspicious or harmful behavior to the platform admins or an adult you trust.
Stay alert, stay safe, and let’s keep our online community secure together! We know there is much more to it, feel free to share your wisdom or experiences in the comments.
[Learn more1]
[Learn more2]
@googlefactss
#OnlineSafety🔒#StaySafeOnline🌐#PasswordSecurity🔑#CyberSecurity🛡️#ProtectYourData📱
#TLDR😜
#markdown#android#bsd#cheatsheet#cheatsheets#command_line#console#documentation#examples#hacktoberfest#help#linux#macos#man_page#manpages#manual#osx#shell#terminal#tldr#windows
The tldr-pages project offers simple, easy-to-understand help pages for command-line tools, focusing on practical examples rather than long, complex manuals. It’s great if you’re new to the command line or forget command options, as it shows the most useful commands clearly. You can access these pages through various clients or online without installing anything. This saves you time and frustration by giving quick, clear guidance on common tasks, making it easier to learn and use command-line tools effectively. Plus, you can contribute by adding or improving pages yourself. This helps you and others get fast, practical help with commands[1][4].
https://github.com/tldr-pages/tldr