Функция 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
КОНКУРС РЕАКЦИЙ ОТ MEMEALERTS🎉
Главный приз — две PlayStation 5: одна тебе, другая стримеру!
- Поймай смешную реакцию стримера на мем с MemeAlerts и запиши этот фрагмент стрима
- Смонтируй это как стикер, выложи его на MemeAlerts с тегом #react и тэгни стримера
- Запости этот стикер в комментариях к этому посту через бота @memesy, чтобы участвовать в конкурсе
📅 1 июля мы подведём итоги.
🏆 Победит стикер, который наберёт больше всего лайков в комментах — и оба участника (стример и мемодел, записавший его реакцию) получат по PS5. Второе и третье место так же будут ждать призы от MemeAlerts.
🎁 А ещё вручим призы за:
— Лучший монтаж — мемоделу, который сделал самый крышесносный стикер
— Самую лулзную реакцию — выбором жюри MemeAlerts
— Лютый кринж — стримеру, чью реакцию зальют эмодзи 🤡 в комментах к посту
🔥 Стримеры, поддержите! Перешлите этот пост в свои каналы
Ждём реакции на мемы ваших любимых стримеров в комментах к этому посту!
React Wrap Balancer – Matnni avtomatik tartiblaydigan kutubxona
📱 Agar React dasturingizda sarlavha yoki matnlar noto‘g‘ri satrlarga bo‘linib qolsa, react-wrap-balancer kutubxonasi sizga yordam beradi. Bu kutubxona matnni estetik tarzda avtomatik tarzda bo‘lib, ko‘rinishini chiroyli qiladi.
Asosiy afzalliklari:
• Matnni chiroyli tarzda satrlarga ajratadi
• Mobil va desktopda ko‘rinishni moslaydi
• O‘rnatish va ishlatish juda oson
O‘rnatish:
npm install react-wrap-balancer
Ishlatish:
import Balancer from "react-wrap-balancer"; <Balancer> Bu yerda sizning sarlavhangiz yoki matningiz bo‘ladi </Balancer>
🖥GitHub:https://github.com/shuding/react-wrap-balancer
#react
💻@dasturlash_hayoti — bir xatoni tuzatib, ikkinchisiga tayyorlanish! 😅
🖇️✨🖇️#react от аккомиᝢ
ОЧЕНЬ МНОГО вопросов, чтобы узнать автора канала лучше !
комм/реакция, а я отвечу...
⤹
«💋» : с кем бы ты поцеловался(ась) из подписчиков этого канала?
«💘» : есть ли человек, который знает тебя лучше, чем ты сам(а)?
«🎉» : топ три твоей любимой еды, музыкальных исполнителей и праздников!
«🕊» : скучаешь по кому-то/чему-то сейчас?
«🍓» : какую черту ты ненавидишь в людях, но сам(а) ей обладаешь?
«🍾» : куришь? пьёшь?
«⚡️» : есть ли у тебя какая-то серьёзная болезнь?
«💯» : ситуация, когда ты был(а) на волоске от см🖇️рти?
«🎃» : умеешь ли ты хранить секреты?
«❤️» : на какую песню/фильм/книгу похожи отношения с тобой?
«🍌» : причина, по которой ты лжёшь чаще всего?
«❤️🔥» : убить или быть убитым(ой)? почему?
«☃️» : какие слова тебя больше всего расстраивают?
«🔥» : а какие радуют?
«👻» : самое травмирующее событие?
«🎄» : самое любимое детское воспоминание?
«👍» : что ты любишь в себе больше всего?
«👎» : а ненавидишь?
«🦄» : покажи свою натальную карту. если не знаешь, что это, то просто ответь, какой у тебя знак зодиака?
«💔» : что ты чувствуешь и как ведёшь себя, если невзаимно влюблен(а)?
«👀» : что ты очень хочешь сделать, но никак не можешь решиться?
«🎃» : расскажи самую жуткую, паранормальную и мистическую историю из твоей жизни
«🐳» : есть ли у тебя домашние животные? расскажи о них!
«😎» : покажи свою ленту в пинтересте, экран блокировки и последнюю прослушанную песню
«🙈» : какие у тебя отношения с родителями?
«👾» : что в людях привлекает тебя больше всего?
«😍» : два плюса и два минуса отношений с тобой!
🖇️источник . . .
пожалуйста, репостите ТОЛЬКО С именем отправителя сверху
больше интерактивов тут ⤸
@akkomisreact ;
#webDevelopment#React
🔰
Server Side Rendering with React and Redux
📖 Build React, Redux, and React Router apps using Server Side Rendering (SSR), Isomorphic, and Universal JS techniques
🗣: Stephen Grider
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
#webDevelopment#react
🌐
Mastering React
Don't get left behind. React is the way forward to building fast, interactive web apps. This course covers everything.
Duration: 13h
220 lessons
Author: CodeWithMosh
🔗Link
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----