Функция 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
Let's create awareness about a #sustainable future.
Participate in the photography competition for the Shoonya–Zero Pollution Mobility campaign and win up to ₹5,000
Visit: https://www.mygov.in/task/snap-shoonya-photography-competition-shoonya%E2%80%93zero-pollution-mobility-campaign/
✈️🇷🇺 В России произведена первая партия SAF-топлива для авиации!
«Газпром нефть» разработала инновационную технологию производства авиационного топлива с пониженным углеродным следом 🌍.
Базой стал традиционный авиакеросин с добавлением биокомпонентов из отработанного масла и жиров ♻️.
🔬 Новый состав уже соответствует международным экологическим стандартам, а применение SAF способно сократить выбросы парниковых газов при перелётах до 80%!
⚡️ Это следующий шаг в реализации стратегии «Газпром нефти» по снижению углеродного следа в транспортном секторе.
📌 Впереди — испытания топлива на базе ведущих авиационных институтов России.
#ГазпромНефть#SAF#авиация#топливоБудущего#экология#инновации#Россия#lowcarbon#sustainable#greenfuture🌱
Reposted from @happinessfestival.id
Ikuti sesi dialog dengan Alissa Qotrunnada Munawaroh atau yang lebih dikenal dengan nama @alissawahid . Putri pertama dari pasangan Mantan Presiden RI ke-4 Abdurrahman Wahid dan Sinta Nuriyah ini tengah menyibukkan dirinya di bidang sosial dan pendidikan.
Dalam Happiness Festival 2020: Webinar, Koordinator Nasional GUSDURian Network ini akan membahas pentingnya meningkatkan kesadaran menjaga Bhinneka Tunggal Ika untuk Indonesia Bahagia Lestari.
Merayakan International Day of Happiness, kita siap menemani WFH #temanbahagia di "Happiness Festival 2020: Webinar". Bersama para narasumber, #temanbahagia bisa berbagi pengalaman secara virtual dan berdiskusi.
.
Catat tanggalnya dan daftarkan diri kamu segera bila ingin terlibat dalam diskusi ini https://bit.ly/hfwebinar
Happiness Festival 2020 merupakan bentuk partisipasi United in Diversity Foundation (Yayasan Upaya Indonesia Damai/UID) dalam merayakan International Day of Happiness untuk menyebarkan pesan-pesan kebahagiaan kepada masyarakat Indonesia.
#jaringangusdurian
#HappinessFest2020
#HappinessFestival
#IndonesiaBahagiaLestari
#temanbahagia
#Hfwebinar
#happinessfestivalwebinar
#sustainable
#bhinnekatunggalika
#wfh
#webinar - #regrann
Bnewable Secures $42M Funding
Bnewable raises $42.02M to enhance energy solutions, focusing on battery-as-a-service and smart energy management systems. Energy management becomes increasingly vital for companies.
#Bnewable#Funding#Energy#Management#Tech#BatteryAsAService#Sustainable#Innovation#SmartSystems#Utilities#Investment#Startups#CleanEnergy#Solutions#Growth#Development#Industry#Future#Strategy#Services