Функция 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
Дорогие читатели!
Вышел в свет 4 выпуск нашего журнала за 2023 год. Начинаем знакомить вас с содержанием номера.
📁Открывает выпуск тематический обзор, посвященный анализу и обобщению имеющихся в настоящее время данных об оксидах на основе LaScO3. В работе приведены особенности кристаллической структуры и образования протонных дефектов, аспекты синтеза и получения плотной керамики, электрические свойства.
🖊️Ekaterina P. Antonova (https://orcid.org/0000-0003-3902-4395)
📘Proton-conducting oxides based on LaScO3: structure, properties and electrochemical applications. A focus review
📌Year 2023, Volume 2, Number 4.
https://doi.org/10.15826/elmattech.2023.2.021
🏛️Institute of High-Temperature Electrochemistry UB RAS, https://ihte.ru/?page_id=155
Подробнее со статьей можно ознакомиться на страницах журнала https://journals.urfu.ru/index.php/elmattech/article/view/7169
📩Приглашаем всех читателей к открытой дискуссии по тематике статьи в комментариях, нам интересно ваше мнение!
#perovskite
✅Выпуск 3 за 2025 г открывает статья, представляющая статистическую теорию, в основу которой положено приближение эффективной среды и уравнение для описания переноса кислорода через вакансии в перовскитах типа AB(1-x)R(x)O(3-Ϭ) с учетом междефектного взаимодействия. Выявлена роль состояний акцепторно-связанных вакансий и корреляций Ферми-типа. Установлено влияние междефектного взаимодействия на зависимость коэффициентов переноса кислородной вакансии от содержания легирующей примеси и энергетики акцепторно-связанных состояний.
🖌LevPutilovhttps://orcid.org/0000-0002-3148-1957
🖌Mikhail Uritsky
🖌VladislavTsidilkovski
📘Oxygen-vacancy transport in acceptor-doped perovskites: effective medium approximation approach
📌Year 2025, Volume 4, Number 3 https://doi.org/10.15826/elmattech.2025.4.055
🏛Institute of High-Temperature Electrochemistry UB RAS https://ihte.ru/?page_id=3106
🧠Полный текст
https://elmattech.ru/article/view/9025/6193
#Perovskite#VacancyTransport
✅Специальный выпуск в 2024 г. открывает статья, посвященная исследованию структурных и электрических свойств материалов на основе станната бария при со-допировании. Была проанализирована взаимосвязь «состав-структура-микроструктура-транспортные свойства». Установлено, что введение катионов Y3+ снижает как ионную, так и дырочную проводимость. Одновременное легирование катионами In3+/Sc3+ минимизирует вклад дырочной проводимости.
🖌️George Starostin (https://orcid.org/0000-0001-9836-0896)
🖌️Mariam Akopian
🖌️Inna Starostina
🖌️Dmitry A. Medvedev
📘Co-doping effect on the microstructural and electrical properties of barium stannate materials
📌Year 2024, Volume 3, Number 3 (Special Issue) https://doi.org/10.15826/elmattech.2024.3.037
🏛️Institute of High-Temperature Electrochemistry UB RAS https://ihte.ru/?page_id=3106
текст https://journals.urfu.ru/index.php/elmattech/article/view/7645/5524
#perovskite#ProtonTransport
Новая работа регулярного выпуска👇
🟢 2022 🟢 V. 9 🟢 Issue 4 🟢 No. 20229405🟢
📜 Phosphorus-doped protonic conductors based on BaLanInnO3n+1 (n = 1, 2): applying oxyanion doping strategy to the layered perovskite structure
👩🎓👨🎓 N. Tarasova (https://orcid.org/0000-0001-7800-0172), A. Galisheva (https://orcid.org/0000-0003-4346-5644)
🏛 Institute of High Temperature Electrochemistry, http://www.ihte.uran.ru
📚#layered#perovskite#oxyanion#doping#proton#conductivity#BaLaInO4#BaLa2In2O7
🔗https://doi.org/10.15826/chimtech.2022.9.4.05
https://journals.urfu.ru/index.php/chimtech/article/view/5979