Функция 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
Вам не нужно тащиться за 400 тысяч километров, чтобы увидеть обратную сторону ВВЭР-1200🌍
А ещё на Нововоронежской АЭС экология и радиационная обстановка лучше, чем в космосе. Хьюстон, у нас нет проблем, есть красивые фото😏
#Артемида2#ArtemisII
NASA’s Artemis II astronauts are officially farther from Earth than any human has gone before
[Read FullArticle]
@WorldNews#ArtemisII#MoonMission#SpaceNews
¡Histórico! 🤯
🔴 Desde la misión de #Apolo17 en 1972, los astronautas de #ArtemisII serán los primeros seres humanos que contemplarán la otra parte de la #Luna🚀🌖
https://revistaelpolitico.com/internacional/artemis-ii-rompe-record-distancia-apolo-13/
Artemis II и новые открытия науки
Космический корабль "Орион" стартовал в первый пилотируемый полет к Луне в рамках миссии Artemis II. Учёные научили шмелей распознавать разные абстрактные ритмы, расширяя понимание их когнитивных способностей. Исследование выявило, что у южноазиатских людей депрессия проявляется через соматические симптомы и навязчивые мысли, не учитываемые стандартными критериями. Подробнее — по ссылке.
#наука#ArtemisII#депрессия#космос
Главные новости России и мираздесь.
🌍 Земля-полумесяц: уникальный кадр с миссии «Артемида-2»
Этот исторический снимок был сделан экипажем миссии Artemis II в начале апреля 2026 года. На фото запечатлена Земля в форме тонкого светящегося полумесяца на фоне глубокого черного космоса.
Детали снимка:
- 📅Когда сделан: Фотография опубликована NASA через пару дней после запуска миссии, стартовавшей 1 апреля 2026 года.
- 📍Где сделан: Снимок получен из иллюминатора космического корабля Orion (которому экипаж дал имя Integrity). В момент съемки корабль находился на высокой околоземной орбите на расстоянии примерно 67 000 – 74 000 км от Земли, готовясь к маневру для полета к Луне.
- 👨🚀Автор: Кадр сделал командир экипажа Рид Уайсмен.
- 🔍Что на фото: Слева видна часть самого корабля Orion, а справа — наша планета. Земля предстаёт в неожиданном образе — как ещё один спутник, только голубой и живой.
Это первый случай с 1972 года, когда люди смогли увидеть и сфотографировать наш общий дом целиком, а не собранным из фрагментов на орбите.
#Артемида#NASA#Космос#Земля#ArtemisII
Космический корабль "Орион" преодолел более половины пути до Луны
Пилотируемый корабль "Орион" миссии Artemis II находится на расстоянии около 210 тыс. км от Луны и 231 тыс. км от Земли. По плану, на шестой день полета он совершит облёт Луны на дистанции 7,5 тыс. км от поверхности. Общая длительность полета — 10 дней с возвращением в Тихий океан. Миссия демонстрирует возможности NASA в пилотируемой лунной программе.
"Это важный шаг в освоении космоса и возвращении человека к Луне."
— Reid Wiseman, NASA
#космос#луна#Орион#ArtemisII#NASA
Главные новости России и мираздесь.
Orion Spacecraft Passes Midpoint to the Moon
The crewed Orion spacecraft of the Artemis II mission is now about 210,000 km from the Moon and 231,000 km from Earth. On day six, it will fly around the Moon at 7,500 km altitude. The 10-day mission aims to showcase NASA’s crewed lunar capabilities, concluding with a Pacific Ocean splashdown.
“This is a crucial step in space exploration and humanity’s return to the Moon,” said NASA’s Reid Wiseman.
#space#Moon#Orion#ArtemisII#NASA
The main news of Russia and the world ishere.
🚀 NASA Confirms Safe Return of Artemis II Spacecraft
NASA has confirmed the safe return of the Artemis II spacecraft to Earth. According to Odaily, the mission marks a significant milestone in the ongoing exploration efforts. The successful completion of this mission paves the way for future endeavors in space exploration.
#NASA#ArtemisII#Spacecraft#SpaceExploration#Milestone#MissionSuccess