Функция 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
🤴Мы запускаем DYOR Tips.
ℹ️DYOR Tips- это цикл публикаций, которые ближе познакомят пользователей с нашими основными продуктами, расскажут о том, как ими можно пользоваться и почему они могут быть полезны в применении.
🔜 Первая публикация о главной странице DYOR.io и её возможностях выйдет уже в эту субботу.
🔥В честь этого мы запускаем небольшой интерактив для наших пользователей, в котором вам нужно будет предложить какую-нибудь интересную фичу, которую мы можем внедрить на главной странице нашего сайта, в один из наших чатов с хэштэгом #homepage
DYOR.io Chat (EU)
DYOR.io Чат (RU)
🎤 Мы будем принимать ваши предложения до 28 сентября этого года, после чего соберём их все, рассмотрим на предмет целесообразности и выберем из них три наиболее интересных и полезных.
💎 Их авторов мы наградим нашим DYOR coin:
🥇 За 1 место - 7 $DYOR
🥈 За 2 место - 5 $DYOR
🥉 За 3 место - 3 $DYOR
✏️ Дерзайте!
Сайт • Чат • 𝕏 • Поддержка
Начнем с рассмотра главной страницы сайта asb-video.ru
Логотип компании, кнопка вызова по телефону, оператор в телеграме и кнопка меню расположились в верхней части экрана мобильного устройства.
Далее нас встречает баннер, который в будущем может превратиться в слайдер акций, скидок или нового проекта.
Ниже нас будут ждать типовые решения для дома, офиса, склада, магазина или квартиры, которые
ООО «АСБ» может предложить для вашего видеонаблюдения.
После типовых решений нас ждёт уникальное целевое действие.
Интерактивным интерфейсом мы заинтересуем посетителей сайта воспользоваться калькулятором подсчёта сметы персональной
системы видеонаблюдения.
Для этого необходимо ввести два значения с помощью клавиатуры — количество помещений и общую площать вашего объекта.
Я придумал систему просчёта количества необходимого оборудования для не сложной среднестатистической системы.
По кнопке ниже калькулятора мы перейдём к просчитанной смете
и сможем ознакомиться
с составом автоматически подобранного решения.
Внизу экрана мобильного устройства вы всегда сможете увидеть кнопки главной, каталога, калькулятора, контактов и кабинета технической поддержки.
В следующем посте мы рассмотрим меню сайта.
#asb#mobile#uxui#design#asbvideoru#homepage
www.asb-video.ru
#vue#awesome#dashboard#docker#hacktoberfest#homelab#homepage#mit#nodejs#organization#productivity#pwa#self_hosted#startpage#vue
Dashy is a free, open-source dashboard that lets you organize and access all your self-hosted services, apps, and web links from one central place, making it easy to manage and monitor everything you use regularly[1][2][4]. It comes with over 50 pre-built widgets for things like system monitoring, news, weather, and productivity, and you can customize the look and layout with themes, icons, and different views[4][5]. The main benefit is that Dashy saves you time and hassle by giving you a single, user-friendly page to launch and check on all your important services, with features like instant search, status indicators, and multi-language support[4][5].
https://github.com/Lissy93/dashy