Функция 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
How one virtual program changed the Anatomical Sciences - https://labblog.uofmhealth.org/rounds/how-one-virtual-program-changed-anatomical-sciences#OnlineEducation#Learning#Anatomy#Science@OnlineEducation10
Study Tour Experience: Η ευκαιρία σου να ζήσεις τη φοιτητική εμπειρία σε ένα κορυφαίο πανεπιστήμιο!
Θέλεις να γνωρίσεις από κοντά τη φοιτητική ζωή σε ένα από τα κορυφαία πανεπιστήμια, να συνεργαστείς με ειδικούς του HSE και να ενισχύσεις το βιογραφικό σου; Τότε το Study Tour Experience είναι ό,τι χρειάζεσαι!
🔹 Το πρόγραμμα προσφέρει δυνατότητα πρακτικής άσκησης σε σύγχρονα διεπιστημονικά πεδία: οικονομικά, διεθνείς σχέσεις, επιχειρήσεις, διοίκηση, χρηματοοικονομικά, νομική, κοινωνιολογία, πολιτικές επιστήμες και άλλα.
🔹 Θα γνωρίσεις καθηγητές και ειδικούς του Εθνικού Ερευνητικού Πανεπιστημίου Higher School of Economics (HSE), θα αποκτήσεις πολύτιμες εμπειρίες και θα γίνεις μέλος της ζωντανής φοιτητικής κοινότητας του HSE.
🔹 Μορφή διεξαγωγής: δια ζώσης (offline) και εξ αποστάσεως (online).
🔹 Γλώσσες διδασκαλίας: ρωσικά και αγγλικά.
🔹 Απευθύνεται σε αλλοδαπούς πολίτες – αποφοίτους και τελειόφοιτους προπτυχιακών προγραμμάτων, που ενδιαφέρονται να φοιτήσουν σε μεταπτυχιακά προγράμματα του HSE.
Study Tour Experience: Το πρώτο σου βήμα για μια επιτυχημένη καριέρα στην HSE!
📍 Μάθε περισσότερα & υπέβαλε την αίτησή σου: https://admissions.hse.ru/studytour/
Study Tour Experience: твой шанс попробовать себя в роли студента топового вуза!
Хочешь погрузиться в атмосферу учебы в одном из ведущих университетов, поработать с экспертами ВШЭ и усилить свое резюме? Тогда Study Tour Experience — это то, что тебе нужно!
🔹 Участников ждут стажировки по самым актуальным междисциплинарным направлениям: экономика, международные отношения, бизнес, менеджмент, финансы, право, социология, политология и многое другое.
🔹 Ты познакомишься с преподавателями и экспертами НИУ ВШЭ, получишь ценный опыт и станешь частью студенческого сообщества Вышки.
🔹 Формат программы: онлайн и офлайн.
🔹 Языки обучения: русский и английский.
🔹 Участие открыто для иностранных граждан — выпускников вузов и студентов последних курсов бакалавриата, которые планируют поступление на магистерские программы ВШЭ.
Study Tour Experience – это твой первый шаг к успешной карьере вместе с НИУ ВШЭ!
📍 Подробности и регистрация: https://admissions.hse.ru/studytour/
#StudyTourExperience#HigherSchoolOfEconomics#HSEUniversity#ΜεταπτυχιακάHSE#ΣπουδέςΣτηΡωσία#ΔιεθνήςΚαριέρα#OnlineEducation#ВысшаяШколаЭкономики#НИУВШЭ#Образование#Магистратура#ВШЭ#КарьерныйСтарт#StudyInRussia#OnlineEducation#HSEUniversity